【MyBatis】 动态SQL——模糊查询 LIKE
2023-06-13 09:11:44 时间
大家好,又见面了,我是你们的朋友全栈君。
一、like ‘%?%’
SELECT *
FROM t_usr
WHERE name like '%${name}%'
SQL解析为:SELECT * FROM t_usr WHERE name like ‘%海%’ 传参必须用${}不能用#{},这样写的弊端是不安全,不能防sql注入 有关LIKE使用,请参见:https://blog.csdn.net/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()使用,请参见:https://blog.csdn.net/wrs120/article/details/81148101
三、bind
bind 元素可以从 OGNL 表达式中创建一个变量并将其绑定到上下文。OGNL(Object Graph Navigation Language的缩写)是一种强大的表达式语言,更多用法,见:https://blog.csdn.net/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 ?
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/140022.html原文链接:https://javaforall.cn
相关文章
- 2023-01-03:超过5名学生的课。编写一个SQL查询来报告 至少有5个学生 的所有班级,返回结果不限顺序。请问sql语句如
- SQL开发知识:Oracle使用MyBatis中RowBounds实现分页查询功能
- SQL开发知识:关于表oracle的一些特殊查询sql语句
- 比较SQL和MySQL:谁更适合你学习?(sql和mysql学哪个)
- 解决Oracle死锁:SQL来帮忙(oracle死锁sql)
- MySQL查询功能:学会使用SQL语句(mysql查询sql语句)
- 掌握SQL语句, 打开Oracle大门(sql语句oracle)
- 实现Oracle数据库分页查询的SQL示例(oracle分页sql)
- 连接Oracle数据库,使用SQL进行查询(sql连oracle)
- 深入浅出:使用Redis替代SQL查询(redis实现sql查询)
- 利用Oracle SQL设计高效报表生成方法(oracle报表sql)
- 利用Oracle SQL工具实现数据库管理(oracle sql工具)
- MySQL中使用三个表进行联合查询的SQL语句(mysql三表联查sql)
- Oracle数据库如何防范SQL注入(oracle会sql注入)
- Oracle SQL传参精准实现数据查询(oracle sql传参)
- 深入浅出学习Oracle SQL中文(oracle sql中文)
- sql多条件组合查询,并根据指定类别找出所有最小子类别的SQL语句备忘