ibatis中使用like模糊查询

无效的方法:

select  *  from table1 where name like ‘%#name#%‘

两种有效的方法: 1) 使用$代替#。此种方法就是去掉了类型检查,使用字符串连接,不过可能会有sql注入风险。

select  *  from table1 where name like ‘%$name$%‘ 

2) 使用连接符。不过不同的数据库中方式不同。

mysql:

select  *  from table1 where name like concat(‘%‘, #name#, ‘%‘)

oracle:

select  *  from table1 where name like ‘%‘ || #name# || ‘%‘

sql server:

 select  *  from table1 where name like ‘%‘ + #name# + ‘%‘

  

时间: 2024-12-27 16:10:06

ibatis中使用like模糊查询的相关文章

jdbc中如何实现模糊查询

情况如何 再利用jdbc执行sql语句的时候,对于其他的句子的执行没什么太大的问题:加上占位符,然后设置占位符的值. 但是在模糊查询的时候,一直都写不对,这里提供了两种可选的解决办法,以供参考. 解决方法 第一种: String sql = "select studentname, age, phone, address, other from customer"                + " where studentname like ? "; pstm

在tp框架中实现数据模糊查询

首先数据库中有一个word表 //实例化一个数据对象$wcidobj = M('word');$p = I('get.p', 1);//得到查询关键字$keyword = I('get.keyword','');if($keyword <> ''){    //设置查询地图(模糊查询)    $map['name'] = array('like',"%$keyword%");    $this->assign('keyword',$keyword);}$pagesiz

WINFORM中的COMBOX模糊查询

有的时候下拉框中的元素过多不好查询,可以考虑进行模糊过滤查询. 在类文件的designer.cs中找到定义combox的模块,加入以下两行代码即可: this.combox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.combox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems;

Mysql中的like模糊查询

MySql的like语句中的通配符:百分号.下划线和escape %代表任意多个字符 _代表一个字符 escape,转义字符后面的%或_,使其不作为通配符,而是普通字符匹配 数据库数据如下: 1.查找名字中以Lucy的字段 查询语句: select * from `user` where name like 'Lucy%' 结果: 2.查询名字是“Lucy”开头且后面只有一个字符的字段 查询语句: select * from `user` where name like 'Lucy_' 查询结果

Mybatis中的like模糊查询

1.  参数中直接加入%% param.setUsername("%CD%");      param.setPassword("%11%"); <select id="selectPersons" resultType="person" parameterType="person"> select id,sex,age,username,password from person where t

Node.js和mybatis分别实现mysql中like变量模糊查询

<!-- mybatis --> <where> <if test="varName != '' and varName != null" > var_name like '%${varName}%' </if> </where> //node 变量 if (data.varName && data.varName != '') { sql += " where var_name like '%&qu

ibatis动态多条件查询及模糊查询(oracle,mysql,sql)

首先是模糊查询的问题,开始时我使用如下条件:select * from user where name like '%#value#%'. 可是怎么也不行,好像还报错了.后来在网上找到了解决方法,就是使用$来代替#号. 1>写成: like '%$value$%' 就可以了,<!-- 模糊查询不能用#,#是用prepareStatement的?插入参数,$是文本替换 -->, 2>同时还找到另一个方法,但是那个方法我试了很久,就是不行,方法为: like '%' || #value

MyBatis Plus之like模糊查询中包含有特殊字符(_、\、%)

传统的解决思路:自定义一个拦截器,当有模糊查询时,模糊查询的关键字中包含有上述特殊字符时,在该特殊字符前添加\进行转义处理. 新的解决思路:将like 替换为 MySQL内置函数locate函数 一.问题提出 使用MyBatis中的模糊查询时,当查询关键字中包括有_.\.%时,查询关键字失效. 二.问题分析 1.当like中包含_时,查询仍为全部,即 like '%_%'查询出来的结果与like '%%'一致,并不能查询出实际字段中包含有_特殊字符的结果条目2.like中包括%时,与1中相同3.

Mybatis中模糊查询使用中文无法查询

解决Mybatis中模糊查询使用中文关键字无法查询 解决方法: 在mybatis中,采用模糊查询时,如果使用中文查询则无法查询出结果:采用英文则可以 解决方法:在sqlconfig.xml中:url的value值的后面加上?useUnicode=true&characterEncoding=UTF-8 原文地址:https://www.cnblogs.com/bestjdg/p/12043867.html