CONCAT() 函數將多個字符串拼接為單一字符串,是 SQL 中構建動態文本、生成報表字段、拼接鍵值的基礎工具。本文涵蓋基本語法、多參數拼接、配合列使用、NULL 處理陷阱及 CONCAT_WS() 進階用法。
SELECT CONCAT('FIRST ', 'SECOND'); -- 返回 'FIRST SECOND'
CONCAT(str1, str2, str3, ...)NULL,結果為 NULL(關鍵陷阱)。SELECT CONCAT(id, name, work_date) FROM employee_tbl;
結果:
| CONCAT(id, name, work_date) |
|---|
| 1John2007-01-24 |
| 2Ram2007-05-27 |
| 3Jack2007-05-06 |
| 3Jack2007-04-06 |
| 4Jill2007-04-06 |
| 5Zara2007-06-06 |
| 5Zara2007-02-06 |
若 name 可能為 NULL:
SELECT CONCAT(id, COALESCE(name, ''), work_date) FROM employee_tbl;
或使用 CONCAT_WS()(With Separator):
SELECT CONCAT_WS('-', id, name, work_date); -- 用 '-' 連接,自動跳過 NULL
CONCAT_WS(sep, str1, str2, ...) 遇到 NULL 直接忽略,不會導致整體結果為 NULL,極適合生成 CSV、日志行、復合鍵。
CONCAT_WS(':', 'ORDER', user_id, DATE_FORMAT(NOW(), '%Y%m%d%H%i%s'))PREPARE 語句。CONCAT('姓名:', name, ' 年龄:', age)CONCAT_WS(' ', title, content, tags) 建立全文索引。max_allowed_packet 限制(默認 4MB/64MB)。WHERE CONCAT(a,b) = 'xxx'。