CONCAT_WS() 是 MySQL 中的一个字符串函数,用于将多个字符串值连接成一个字符串,并且在这些值之间插入一个指定的分隔符。这个函数特别有用,因为它允许你指定一个分隔符,并且当连接的字符串值为 NULL 时,它会自动忽略这些 NULL 值。
语法
sql
CONCAT_WS(separator, string1, string2, ...)
separator:指定用于分隔字符串值的字符或字符串。
string1, string2, ...:要连接的字符串值列表。
例子
假设我们有一个名为 students 的表,其中包含学生的 id、first_name 和 last_name 列。如果我们想要连接 first_name 和 last_name 列,并在它们之间添加一个空格作为分隔符,我们可以使用 CONCAT_WS() 函数如下:
sql
SELECT CONCAT_WS(' ', first_name, last_name) AS full_name
FROM students;
这将返回一个名为 full_name 的列,其中包含每个学生的全名(由 first_name 和 last_name 组成,中间有一个空格)。
如果 first_name 或 last_name 中的任何一个为 NULL,CONCAT_WS() 将忽略该 NULL 值,并只返回其他非 NULL 值。例如:
sql
-- 假设我们有以下数据
| id | first_name | last_name |
|----|------------|-----------|
| 1 | John | Doe |
| 2 | NULL | Smith |
| 3 | Jane | NULL |
-- 使用 CONCAT_WS() 的查询结果将是:
| full_name |
|-----------|
| John Doe |
| Smith |
| Jane |
注意,在第二个和第三个结果中,NULL 值被忽略了。