"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Por que não posso usar aliases da coluna em MySQL onde as cláusulas?

Por que não posso usar aliases da coluna em MySQL onde as cláusulas?

Postado em 2025-03-24
Navegar:889

Why Can't I Use Column Aliases in MySQL WHERE Clauses?

mysql's where cláusula e alias de coluna limitações

Usando aliases da coluna em MySQL's Where Clause geralmente leva ao erro "#1054 - coluna desconhecida em 'in/all/qualquer subquery'". Este artigo explica o porquê e oferece abordagens alternativas.

MySQL requer nomes de colunas em onde as cláusulas sejam diretamente diretamente da estrutura da tabela ou derivadas via notação de ponto. Aliases da coluna, nomes temporários atribuídos durante o processamento da consulta, não são reconhecidos.

A documentação do MySQL proíbe explicitamente isso. O motivo é a ordem de execução da consulta: a cláusula WHERE é avaliada antes aliases são atribuídos. Portanto, usando um pseudônimo na cláusula onde resulta em comportamento indefinido.

Para superar isso, empregue a cláusula de ter. Esta cláusula foi projetada para filtrar linhas após o agrupamento e a agregação, tornando -a apropriada ao filtrar em colunas calculadas (como as criadas com aliases). Em situações em que um pseudônimo é necessário para a filtragem, usando o alias na cláusula de ter uma solução alternativa viável.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3