Mik*_*ail -2 mysql sql concatenation
我正在使用的DBMS是MySQL.
这是表格:
AUTHOR
author_id | first_name | last_name | patronymic
-----------------------------------------------
1 | John | Bush | NULL
2 | Sergey | Burov | Romanovich
3 | NULL | Filin | NULL
Run Code Online (Sandbox Code Playgroud)
如果我发出此查询:
SELECT author_id,
CONCAT(first_name, ' ', last_name, ' ', patronymic) AS full_name
FROM author;
Run Code Online (Sandbox Code Playgroud)
输出如下所示:
author_id | full_name
-----------------------------------
1 | NULL
2 | Sergey Burov Romanovich
3 | NULL
Run Code Online (Sandbox Code Playgroud)
因此,从示例中可以看出,如果字段具有NULL值,则在连接过程中,整个事物将设置为NULL.请解释一下,如何让MySQL将NULL值转换为长度为0的字符串,或者只是使它不会连接NULL值?
谢谢大家.
您可以使用CONCAT_WS使用分隔符连接字符串,并跳过空值:
SELECT author_id,
CONCAT_WS(' ', first_name, last_name, patronymic) AS full_name
FROM author;
Run Code Online (Sandbox Code Playgroud)
请看这里的小提琴.