我正在尝试从列表列中连接非空值。 我不需要那个 null 值
SELECT Emp_fname, Call_number, concat( Aud_name,Mag_name,Boo_name) as name
FROM manage left JOIN call_number ON manage.Man_Call_id = call_number.Call_id
left JOIN book_ ON call_number.Call_id = book_.Boo_id
left JOIN employee_ ON manage.Man_emp_id = employee_.Emp_id
left JOIN audiovisual_ ON call_number.Call_id = audiovisual_.Aud_Call_id
left join magzine_ ON call_number.Call_id = magzine_.Mag_Call_id
最佳答案
CONCAT
函数即使传递一个 NULL
值,也只会返回 NULL
作为结果。如果您想在使用列列表调用 CONCAT
时忽略可能的 NULL
值,则可以使用 COALESCE
。这是您的查询的一个版本,它将完全忽略 NULL
:
SELECT
Emp_fname,
Call_number,
CONCAT(COALESCE(Aud_name, ''), COALESCE(Mag_name, ''), COALESCE(Boo_name, '')) AS name
FROM manage
...
如果您不想用空字符串替换空值,您可以使用您想要的任何字符串替换。
关于Mysql Concat 不为空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51759051/