首頁  >  文章  >  資料庫  >  為什麼在 SELECT 查詢中使用 CONCAT 時 MySQL 會拋出「未知列」錯誤?

為什麼在 SELECT 查詢中使用 CONCAT 時 MySQL 會拋出「未知列」錯誤?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-17 17:49:02366瀏覽

Why Does MySQL Throw an

理解MySQL SELECT 查詢中的CONCAT 條件

在處理表示名稱或其他串聯資訊的欄位時,MySQL 的CONCAT 函數提供了一個多功能工具組合值並進行比較。但是,在 SELECT 查詢中使用 CONCAT 可能會導致指派給連線運算式的別名出現「未知列」錯誤。

要克服此錯誤,重要的是要了解 SELECT 查詢中的別名僅適用於輸出列,並且在查詢本身中無法識別。因此,要在WHERE 條件中使用CONCAT 表達式,您有兩個選擇:

  1. 重複CONCAT 表達式:

    而不是使用別名,在WHERE 子句中重複CONCAT表達式:

    SELECT neededfield, CONCAT(firstname, ' ', lastname) as firstlast 
    FROM users
    WHERE CONCAT(firstname, ' ', lastname) = "Bob Michael Jones"
  2. 包裝查詢:

    或者,您可以包裝原始查詢到子查詢中,並為子查詢中的CONCAT表達式分配別名:

    SELECT * FROM (
      SELECT neededfield, CONCAT(firstname, ' ', lastname) as firstlast 
      FROM users) base 
    WHERE firstLast = "Bob Michael Jones"

在這兩種情況下,查詢都會成功將名字和姓氏字段的串聯值與提供的值進行比較字符串“Bob Michael Jones ”,並檢索所需的結果。

以上是為什麼在 SELECT 查詢中使用 CONCAT 時 MySQL 會拋出「未知列」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn