在Mysql进行数据库查询的时候,使用concat函数可以进行字符、字段数据的拼接,返回结果为连接参数产生的字符串,但如果有任何一个数据为null,则返回的结果也为null。
针对这种字段为null的情况,我们可以用两种方式解决:
1、使用concat_ws替换concat(推荐):
在遇到null的情况下,concat_ws不返回null,会自动忽略任何null的情况,继续拼接。
使用方法:
CONCAT_WS(separator,str1,str2,...)
CONCAT_WS() 代表 CONCAT With Separator ,是CONCAT()的特殊形式。第一个参数是其它参数的分隔符。分隔符的位置放在要连接的两个字符串之间。分隔符可以是一个字符串,也可以是其它参数。
需要注意的是必须指定分隔符。如果没有分隔符,则结果为 NULL。函数会忽略任何分隔符参数后的 NULL 值。
2、可以在concat中,使用ifnull函数:
如:concat(ifnull(colnum1,""),ifnull(colnum2,"")) ,不过这种方式我觉得比较鸡肋,为了避免出错,有多少个字段你就要写多少个ifnull。