为什呢 SELECT * FROM `au_user` WHERE CONCAT(`userName`,`idCard`) LIKE '%key%' 不能多字段模糊查询呢?

为什呢 SELECT * FROM au_user WHERE CONCAT(userName,idCard) LIKE '%key%' 不能多字段模糊查询呢?

concat()函数有两个问题,第一,如果userName idCard 中有任意一个字段为null,那么返回null,即便其它字段有值
第二,如果userName是abc,idcard是defg,你要查找 bcde,按理说没有任何字段有bcde,但是用你这个方法居然能查出来

CONCAT()函数用于将多个字符串连接成一个字符串,模糊查询是会把拼接后的字段内容跟key进行模糊匹配,而不是每个字段跟key匹配;