SELECT クエリで CONCAT を使用すると、MySQL が「不明な列」エラーをスローするのはなぜですか?

Mary-Kate Olsen
リリース: 2024-11-17 17:49:02
オリジナル
362 人が閲覧しました

Why Does MySQL Throw an

MySQL SELECT クエリの CONCAT 条件を理解する

名前やその他の連結された情報を表すフィールドを扱う場合、MySQL の CONCAT 関数は、値を組み合わせて比較を実行します。ただし、SELECT クエリで CONCAT を使用すると、連結された式に割り当てられたエイリアスに対して「不明な列」エラーが発生する可能性があります。

このエラーを解決するには、SELECT クエリのエイリアスは、出力列であり、クエリ自体では認識されません。したがって、WHERE 条件で CONCAT 式を使用するには、次の 2 つのオプションがあります:

  1. CONCAT 式を繰り返す:

    エイリアスを使用して、WHERE 句内で CONCAT 式を繰り返します:

    SELECT neededfield, CONCAT(firstname, ' ', lastname) as firstlast 
    FROM users
    WHERE CONCAT(firstname, ' ', lastname) = "Bob Michael Jones"
    ログイン後にコピー
  2. クエリをラップします:

    または、元のクエリをラップすることもできます

    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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート