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 » ?

Comment concaténer et comparer des chaînes à l'aide de MySQL SELECT avec CONCAT : éviter l'erreur « Colonne inconnue » ?

DDD
DDDoriginal
2024-11-20 15:40:12805parcourir

How to Concatenate and Compare Strings Using MySQL SELECT with CONCAT: Avoiding the “Unknown Column” Error?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn