MySQL SELECT クエリの CONCAT 条件を理解する
名前やその他の連結された情報を表すフィールドを扱う場合、MySQL の CONCAT 関数は、値を組み合わせて比較を実行します。ただし、SELECT クエリで CONCAT を使用すると、連結された式に割り当てられたエイリアスに対して「不明な列」エラーが発生する可能性があります。
このエラーを解決するには、SELECT クエリのエイリアスは、出力列であり、クエリ自体では認識されません。したがって、WHERE 条件で CONCAT 式を使用するには、次の 2 つのオプションがあります:
CONCAT 式を繰り返す:
エイリアスを使用して、WHERE 句内で CONCAT 式を繰り返します:
SELECT neededfield, CONCAT(firstname, ' ', lastname) as firstlast FROM users WHERE CONCAT(firstname, ' ', lastname) = "Bob Michael Jones"
クエリをラップします:
または、元のクエリをラップすることもできます
SELECT * FROM ( SELECT neededfield, CONCAT(firstname, ' ', lastname) as firstlast FROM users) base WHERE firstLast = "Bob Michael Jones"
どちらの場合も、クエリは名フィールドと姓フィールドの連結値を、指定されたフィールドと正常に比較します。文字列「Bob Michael Jones」を入力し、目的の結果を取得します。
以上がSELECT クエリで CONCAT を使用すると、MySQL が「不明な列」エラーをスローするのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。