直接在mysql中进行模糊查询时,使用where username like ‘%三%’;
而在mybatis中时,需要使用字符串连接函数CONCAT()。
有效的模糊查询如下:
<where>
<if test="username != null">
u.username like CONCAT(CONCAT('%', #{username}),'%')
</if>
</where>
而下面的查询会报错:
<if test="email != null">
u.email like CONCAT('%','#{email,jdbcType=VARCHAR}','%')
</if>
原因尚不清楚,猜测是由于CONCAT()函数拼接出来的值不正确。