MySQL est les limitations de la clause et de la colonne
Utilisation d'alias de colonnes dans la clause MySQL conduit souvent à l'erreur "# 1054 - colonne inconnue dans 'in / all / any subquery'". Cet article explique pourquoi et propose des approches alternatives.
mysql nécessite des noms de colonne dans où les clauses sont soit directement à partir de la structure du tableau, soit dérivées via la notation de points. Les alias de colonne, les noms temporaires attribués pendant le traitement de la requête, ne sont pas reconnus.
La documentation MySQL interdit explicitement cela. La raison est l'ordre d'exécution de la requête: la clause WHERE est évaluée avant les alias sont attribués. Par conséquent, l'utilisation d'un alias dans la clause Where entraîne un comportement non défini.
pour surmonter cela, utilisez la clause ayant. Cette clause est conçue pour filtrer les lignes après le regroupement et l'agrégation, ce qui le rend approprié lors du filtrage sur des colonnes calculées (comme celles créées avec des alias). Dans les situations où un alias est nécessaire pour le filtrage, en utilisant l'alias dans la clause ayant une solution de contournement viable.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3