理解MySQL SELECT 查詢中的CONCAT 條件
在處理表示名稱或其他串聯資訊的欄位時,MySQL 的CONCAT 函數提供了一個多功能工具組合值並進行比較。但是,在 SELECT 查詢中使用 CONCAT 可能會導致指派給連線運算式的別名出現「未知列」錯誤。
要克服此錯誤,重要的是要了解 SELECT 查詢中的別名僅適用於輸出列,並且在查詢本身中無法識別。因此,要在WHERE 條件中使用CONCAT 表達式,您有兩個選擇:
重複CONCAT 表達式:
而不是使用別名,在WHERE 子句中重複CONCAT表達式:
SELECT neededfield, CONCAT(firstname, ' ', lastname) as firstlast FROM users WHERE CONCAT(firstname, ' ', lastname) = "Bob Michael Jones"
包裝查詢:
或者,您可以包裝原始查詢到子查詢中,並為子查詢中的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中文網其他相關文章!