Maison >base de données >tutoriel mysql >Pourquoi MySQL renvoie-t-il une erreur « Colonne inconnue » lors de l'utilisation de CONCAT dans des requêtes SELECT ?
Comprendre les conditions CONCAT dans les requêtes MySQL SELECT
Lorsque vous traitez des champs représentant des noms ou d'autres informations concaténées, la fonction CONCAT de MySQL fournit un outil polyvalent pour combiner des valeurs et effectuer des comparaisons. Cependant, l'utilisation de CONCAT dans les requêtes SELECT peut entraîner l'erreur « colonne inconnue » pour l'alias attribué à l'expression concaténée.
Pour surmonter cette erreur, il est important de comprendre que les alias dans les requêtes SELECT ne s'appliquent qu'à l'expression concaténée. colonnes de sortie et ne sont pas reconnus dans la requête elle-même. Par conséquent, pour utiliser une expression CONCAT dans une condition WHERE, vous avez deux options :
Répétez l'expression CONCAT :
Au lieu d'utiliser le alias, répétez l'expression CONCAT dans le WHERE clause :
SELECT neededfield, CONCAT(firstname, ' ', lastname) as firstlast FROM users WHERE CONCAT(firstname, ' ', lastname) = "Bob Michael Jones"
Encapsuler la requête :
Vous pouvez également envelopper la requête d'origine dans une sous-requête et attribuer un alias à la Expression CONCAT dans la sous-requête :
SELECT * FROM ( SELECT neededfield, CONCAT(firstname, ' ', lastname) as firstlast FROM users) base WHERE firstLast = "Bob Michael Jones"
Dans les deux cas, la requête compare avec succès la valeur concaténée des champs prénom et nom avec la chaîne fournie, "Bob Michael Jones", et récupère les résultats souhaités.
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!