300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 【MyBatis】 动态SQL——模糊查询 LIKE

【MyBatis】 动态SQL——模糊查询 LIKE

时间:2019-10-04 23:50:00

相关推荐

【MyBatis】 动态SQL——模糊查询 LIKE

一、like '%?%'

SELECT * FROM t_usr WHERE name like '%${name}%'

SQL解析为:SELECT * FROM t_usr WHERE name like '%海%'

传参必须用${}不能用#{},这样写的弊端是不安全,不能防sql注入

有关LIKE使用,请参见:/wrs120/article/details/7930582

二、CONCAT()拼接%

SELECT * FROM t_usr WHERE name like CONCAT('%',CONCAT(#{name},'%'))

SQL解析为:SELECT * FROM t_usr WHERE name like CONCAT('%',CONCAT(?,'%'))

拼接时%必须加引号

有关CONCAT()使用,请参见:/wrs120/article/details/81148101

三、bind

bind 元素可以从 OGNL 表达式中创建一个变量并将其绑定到上下文。OGNL(Object Graph Navigation Language的缩写)是一种强大的表达式语言,更多用法,见:/isea533/article/details/50061705/

SELECT * FROM t_usr WHERE<if test="name !=null || name !=''"><bind name="usrName" value="'%' + name + '%'"/>name like #{usrName}</if>

SQL解析为:SELECT * FROM t_usr WHERE name like ?

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。