Maison > Article > base de données > Comment concaténer et comparer des chaînes à l'aide de MySQL SELECT avec CONCAT : éviter l'erreur « Colonne inconnue » ?
Utilisation de MySQL SELECT avec la condition CONCAT
Lorsque vous travaillez avec une table contenant des champs de prénom et de nom, une tâche courante consiste à les concaténer en une seule chaîne à des fins de comparaison ou de filtrage. Cependant, rencontrer une erreur de « colonne inconnue » lors de l'utilisation d'un alias pour la chaîne concaténée peut être déroutant.
Pour surmonter ce problème, il est essentiel de comprendre que les alias ne sont applicables qu'à la sortie d'une requête, et non dans le cadre de la requête. interroger lui-même. Pour concaténer et comparer des chaînes, vous avez deux options :
Répéter la concaténation :
SELECT neededfield, CONCAT(firstname, ' ', lastname) as firstlast FROM users WHERE CONCAT(firstname, ' ', lastname) = "Bob Michael Jones"
En répétant l'expression de concaténation dans la clause WHERE, vous vous assurez que vous 'comparons les valeurs concaténées réelles.
Utilisation d'une sous-requête :
SELECT * FROM ( SELECT neededfield, CONCAT(firstname, ' ', lastname) as firstLast FROM users ) base WHERE firstLast = "Bob Michael Jones"
En encapsulant la requête dans une sous-requête, vous créez une table temporaire avec un alias ( "base" dans cet exemple) qui inclut la chaîne concaténée sous forme de colonne. Vous pouvez ensuite filtrer ce tableau temporaire à l'aide de la comparaison souhaitée.
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!