CONCAT_WS(separator, str1, str2, ...)
WS = With Separator。第一參數為分隔符,插在各字串之間。
SELECT CONCAT_WS(',', '11', '22', '33'); -- '11,22,33'
SELECT CONCAT_WS(',', '11', '22', NULL); -- '11,22' (跳過 NULL)
| 特性 | CONCAT | CONCAT_WS |
|---|---|---|
| NULL 處理 | 全傳 NULL | 忽略 NULL 值(分隔符不重複) |
| 分隔符 | 需手動插入 | 第一參數自動插入 |
| 分隔符為 NULL | N/A | 結果為 NULL |
| 空字串 '' | 正常連接 | 保留位置,產生分隔符 |
CONCAT_WS(',', col1, col2, col3)CONCAT_WS('|', tag1, tag2, tag3)CONCAT_WS(' ', province, city, district, detail)若分隔符為 NULL,整體回傳 NULL;若需「無分隔符連接」請用 CONCAT 或 CONCAT_WS('', ...)(但空字串分隔符會導致無法區分邊界)。