背景
MySQL 的数据数据记录中明明有值,在使用 concat() 查询时却一直得到 null
SELECT CONCAT(first_name, ' ', last_name) FROM users;
排查后发现
MySQL 的 concat 函数拼接规则是 当多个拼接的字段的字段值中存在 null 时,返回的一定是 null
解决方案
利用函数 IFNULL() 函数处理 null 值
SELECT CONCAT(IFNULL(first_name, ''), ' ', IFNULL(last_name, '')) FROM users;
这样就相当于用空字符串替换 null 值,从而避免 concat() 函数返回 null
我不是第一个踩此坑的,肯定也不会是最后一个踩此坑的,简单记录,等待有缘人