Maison >base de données >tutoriel mysql >Pourquoi ma requête SQL affiche-t-elle une erreur « Colonne inconnue dans la clause Where » ?
Dépannage de l'erreur « Colonne inconnue » dans les clauses SQL WHERE
La redoutable erreur « Colonne inconnue dans la clause Where » affecte fréquemment les requêtes SQL. Cette erreur se produit lorsque votre instruction SQL fait référence à un nom de colonne dans la clause WHERE
que le système de base de données ne peut pas trouver.
Examinons un scénario typique :
<code class="language-sql">SELECT u_name AS user_name FROM users WHERE user_name = "john";</code>
Cette requête vise à récupérer le u_name
de la table users
, alias user_name
, où le user_name
est "john". Cependant, cela génère souvent l'erreur « Colonne inconnue 'nom_utilisateur' dans la clause Where ».
La cause première est l'ordre de traitement de SQL : il évalue la clause WHERE
avant la clause SELECT
. Par conséquent, lorsque la base de données atteint la clause WHERE
, l'alias user_name
n'a pas encore été défini.
La solution ? Assurez-vous que les alias utilisés dans la clause WHERE
sont définis avant d'être référencés. Utilisez simplement le nom de la colonne d'origine dans la clause WHERE
:
<code class="language-sql">SELECT u_name AS user_name FROM users WHERE u_name = "john";</code>
Cette requête révisée permet à la base de données d'identifier correctement u_name
puis d'appliquer l'alias user_name
pendant la phase SELECT
, évitant ainsi l'erreur. L'alias est utilisé uniquement pour la sortie, pas pour le filtrage.
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!