最近编写SQL遇到一个十分有趣的现象:
使用mysql concat函数连接字符串中有中文字符,大概类似于 concat('截止到','t.date','共有',‘count(1)’,'条符合条件的数据') as 主题,单独查询是好的,但是几个不同条件的sql union 之后竟然在主题那一栏的字段中产生了乱码。
原因是count函数,当没有符合的数据时,count(1) 为Null,而sql是不识别NULL的编码的,所以会导致一部分编码乱掉。
解决方法: 增加判断,若为NULL,设为0, IFNULL(count(1),0)