Maison >base de données >tutoriel mysql >Pourquoi ma requête SQL échoue-t-elle avec « Colonne inconnue dans la clause Where » lors de l'utilisation d'alias ?
Question :
Les requêtes utilisant des alias dans l'instruction SELECT provoqueront une erreur, provoquant une colonne d'alias inconnu dans l'instruction WHERE. Par exemple, la requête suivante déclenche cette erreur :
<code class="language-sql">SELECT u_name AS user_name FROM users WHERE user_name = "john";</code>
Explication :
L'ordre d'exécution de SQL est de droite à gauche. Dans cet exemple, la clause WHERE est exécutée avant la clause SELECT. Par conséquent, lorsque la clause WHERE est analysée, l'alias user_name
n'a pas encore été défini.
Solution :
Pour résoudre ce problème, vous pouvez utiliser les noms de colonnes d'origine dans la clause WHERE :
<code class="language-sql">SELECT u_name AS user_name FROM users WHERE u_name = "john";</code>
Ou placez le nom de la colonne alias entre parenthèses dans la clause WHERE :
<code class="language-sql">SELECT u_name AS user_name FROM users WHERE (user_name = "john");</code>
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!