Mysql Concat 不为空值

标签 mysql

我正在尝试从列表列中连接非空值。 我不需要那个 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

not concat concat

最佳答案

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/

相关文章:

mysql - 索引表以加速排序的最佳方法

mysql - 如何在某一列具有相同值的行中查询具有最高列值的行 v.2

PHP WHILE 循环神秘地没有产生任何输出

mysql - 分组前的 Zend 框架顺序

php - 使用 whois 检查子域名

php - 从数据库动态填写测验表格(PHP/MySQL)

php - Foreach 循环无法正常工作

MySQL - 将限制增加 1 结果将执行时间从不到一秒增加到无限

php - 如何从数据库查询创建多维数组

php - MYSQL更新值识别