MySQL:concat拼接字段导致数据为空问题解决方案

Posted 爱叨叨的程序狗

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL:concat拼接字段导致数据为空问题解决方案相关的知识,希望对你有一定的参考价值。

使用mysql concat函数进行拼接不同字段时,如果遇到拼接变量其中一个是Null值的情况,会导致整个拼接的字段为Null。

看例子:

select iv.id as vehicleId
from vehicle iv
where iv.id < 5
order by iv.id;

select id, company_name
from company
where id = 1;

当进行关联查询时,vehicle表中假设有两条数据company_id为null,那么就会导致concat的字段整个为空。

select iv.id as vehicleId, company_name as companyName, concat(iv.id, 'concat', ic.company_name) as concatName
from vehicle iv
         left join company ic on ic.id = iv.insurance_company_id = ic.id
where iv.id < 5
order by iv.id;

解决方案:

concat配合IFNULL使用。

select iv.id                                                            as vehicleId,
       company_name                                                     as companyName,
       concat(ifnull(iv.id, 'null'), 'concat', ifnull(ic.company_name, 'null')) as concatName
from insurance_vehicle iv
         left join insurance_company ic on ic.id = iv.insurance_company_id = ic.id
where iv.id < 5
order by iv.id;

以上是关于MySQL:concat拼接字段导致数据为空问题解决方案的主要内容,如果未能解决你的问题,请参考以下文章

mysql GROUP_CONCAT 查询某个字段(查询结果默认逗号拼接)

mysql—group_concat函数

mysql concat 用法

mysql CONCAT用法

MySQL group_concat_max_len

mysql concat update中拼接字符串