MySQL 查询语句中如果 like 字段中有中文会报错:
MySQL Illegal mix of collations for operation 'like'
在旧版的 MySQL 是不会出现错误的.
升到 MySQL 5.5 以上,必需改成 like binary ‘% 中文 %’ 即可避免出现错误
我的项目中,关键字keyword可能出现中文,我就是这样避免出现错误的
<if test=" keyWord != null and keyWord != '' ">
and ( (r.holder_entity_no like binary concat('%',concat(#{keyWord},'%')))
OR (r.holderName like binary concat('%',concat(#{keyWord},'%')))
OR (r.brandName like binary concat('%',concat(#{keyWord},'%')))
)
</if>