


Pourquoi MySQL génère-t-il une erreur « #1054 - Colonne inconnue » lors de l'utilisation d'alias de colonne dans les clauses WHERE ?
Jan 22, 2025 am 08:27 AMAlias de clause WHERE et de colonne MySQL : dépannage de l'erreur « #1054 - Colonne inconnue »
Les requêtes MySQL produisent parfois l'erreur "#1054 - Colonne inconnue 'guaranteed_postcode' dans la sous-requête 'IN/ALL/ANY'" lors de l'utilisation d'alias de colonne dans la clause WHERE. En effet, le SQL standard empêche l'utilisation d'alias dans la clause WHERE en raison d'incohérences potentielles dans la détermination de la valeur de colonne lors de l'exécution. La base de données n'a pas encore attribué de valeurs à l'alias lorsque la clause WHERE est traitée.
Le manuel MySQL indique clairement que les alias ne sont valides que dans les clauses GROUP BY, ORDER BY ou HAVING. Ces clauses fonctionnent après la récupération des données, garantissant la disponibilité des alias.
Votre requête utilise probablement SUBSTRING(locations.raw,-6,4)
alias guaranteed_postcode
dans la clause WHERE. Étant donné que MySQL rencontre l'alias avant que la valeur de la colonne ne soit calculée, il génère l'erreur.
Pour corriger cela, utilisez la clause HAVING (pour les fonctions d'agrégation ou les calculs) ou une sous-requête dans la clause WHERE. La sous-requête évite d'utiliser l'alias directement dans la clause WHERE de la requête principale, fournissant ainsi le filtrage nécessaire sans violer les règles de MySQL.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Réduisez l'utilisation de la mémoire MySQL dans Docker

Comment modifier une table dans MySQL en utilisant l'instruction ALTER TABLE?

Comment résoudre le problème de MySQL ne peut pas ouvrir la bibliothèque partagée

Exécutez MySQL dans Linux (avec / sans conteneur Podman avec phpmyadmin)

Comment sécuriser MySQL contre les vulnérabilités communes (injection SQL, attaques par force brute)?

Exécuter plusieurs versions MySQL sur macOS: un guide étape par étape

Comment configurer le cryptage SSL / TLS pour les connexions MySQL?
