📜  MySQL 中的 CONCAT_WS()函数(1)

📅  最后修改于: 2023-12-03 15:03:05.456000             🧑  作者: Mango

MySQL 中的 CONCAT_WS() 函数

在 MySQL 中,我们可以使用 CONCAT_WS() 函数将多个字符串合并为一个字符串。该函数的 "WS" 是 "with separator" 的缩写,表示分隔符。

语法
CONCAT_WS(separator, str1, str2, ...)

参数解释:

  • separator:必选,表示分隔符。
  • str1, str2:待合并的字符串,可以有多个。
示例

例如,我们有一张员工表,包含员工的姓名、地址、邮编等信息:

| id | name | address | postal_code | | --- | ----- | -------------- | ----------- | | 1 | Jack | Los Angeles, CA | 90012 | | 2 | Alice | New York, NY | 10001 | | 3 | Bob | Chicago, IL | 60607 |

如果需要将这些信息合并成一个字符串,中间以逗号和空格分隔,我们可以使用 CONCAT_WS() 函数:

SELECT CONCAT_WS(', ', name, address, postal_code) AS 'employee_info' FROM employees;

执行上述 SQL 后,将返回以下结果:

| employee_info | | ---------------------------- | | Jack, Los Angeles, CA, 90012 | | Alice, New York, NY, 10001 | | Bob, Chicago, IL, 60607 |

注意事项
  • 分隔符必须放在第一个参数位置,后面才是待合并的字符串。
  • 如果某个待合并的字符串为 null,则该函数将忽略该字符串,不会将分隔符添加到该字符串后面。
  • 如果所有待合并字符串都为 null,则该函数返回 null。
结语

CONCAT_WS() 函数可用于将多个字符串合并成一个字符串,方便我们在 SQL 查询中自定义返回字符串的格式。同时,它也提供了比 CONCAT() 函数更好的控制分隔符的方式。