今天在用mysql查询,并对查询结果进行字符串拼接的时候出现查询字段有值,但是与字符串拼接完了为空的情况.
表中数据如下
最一开始用 || 拼接,发现居然拼出来了0,
select 'name:'||NAME
from users
where id<6
度娘说mysql不能和oracle一样用 ||做字符串的拼接 要用CONCAT(str1,str2,str3,......)来做字符串的拼接,
试着写了一下,还是不太对,为什么会有null的存在呢
select CONCAT('name:',NAME)
from users
where id<6
度娘说是因为如果有值为null的话那么整个CONCAT('name:',NAME)就会是null所以再加个null的判断用IFNULL(name,'空的'),得到了想要的结果
select CONCAT('name:',IFNULL(NAME,'居然没有名字'))
from users
where id<6