在使用多字段模糊查询的时候
1、关于数据库中concat()函数,刚开始使用MySQl测试的时候发现,里面的字段即使有一个为空返回的结果居然不为空,但是在使用clinkhouse测试的时候,发现里面只要有一个字段时空的就会返回空值。
总感觉MySQl有时候有点怪,也有可能是在安装的时候选择了非严谨模式的原因?
解决:
①使用concat_ws替换concat;在遇到null的情况下,concat_ws不返回null,会自动忽略任何null的情况,继续拼接,但是这个函数clinkhouse不支持。
②可以在concat中,使用ifnull函数,如:concat(ifnull(colnum1,‘null’),ifnull(colnum2,‘null’))
AND CONCAT(IFNULL(msgContent,'NULL'),IFNULL(msgTitle,'null'),IFNULL(CAST(recordId AS varchar(20)),'NULL')) LIKE '%你好%'