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.
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