在学习mybatis的学习中,用到模糊查询的时候,发现直接拼接成‘%’#{description}'%'会报错,然后整理了三种模糊查询的SQL语句写法:
1.在传参的时候,就把参数拼接为"%"+description+"%" 然后传到XML文件的SQL语句中,这样就避免了在SQL语句中拼接出错
2.使用SQL的concat函数 在SQL语句进行拼接,这样拼接的SQL语句也是符合要求的,如:
SELECT * FROM MESSAGE WHERE DESCRIPTION like CONCAT(CONCAT('%',#{description}),'%');
3.使用${description}替换,#{description}就可以直接用'%${description}%',如:
SELECT * FROM MESSAGE WHERE DESCRIPTION like '%${description}%';
上面三种方式中,以第二种为最,几乎无论什么情形都可以使用,而第一种和第三种都需要有一些前提条件才可以使用,不过在正常的工作中,几乎都可以使用到这三种方法。今天整理出来,也为大家以后再次遇到这种情况提供一点小小的帮助。