mybatis 使用concat 模糊查询方式
目录
- 使用concat 模糊查询
- 本举例
- 注意
- 模糊查询使用concat('%',#{str},'%')出错
使用concat 模糊查询
<select id="queryByKeyWord" resultType="com.mingdutech.xelerator.eln.dto.ApparatusDto"> select distinct b.* from base_apparatus b left join base_apparatus_column c on b.ID = c.apparatus_id <if test="keyWord != null"> <where> CONCAT( IFNULL(b.name,''), IFNULL(code,''), IFNULL(serial,''), IFNULL(location,''), IFNULL(remark,''), IFNULL(b.create_user,''), IFNULL(b.update_user,''), IFNULL(c.field_value,''), IFNULL(batch_no,'') ) like CONCAT('%',#{keyWord},'%') </where> </if> </select>
concat() 函数用于将多个字符串拼接成一个字符串
本举例
keyWord为空查询所有,keyWord不为空,检索所有contact中所有字段匹配的内容。
注意
所有字段需要IFNULL判断,否则某字段为空可能会导致查询结果丢失一条记录
模糊查询使用concat('%',#{str},'%')出错
经过我一套乱七八糟毫无思路地查找后,发现不是mybatis的原因,原来是SQL server不支持concat函数,直接用加号连接就好
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
利用MyBatis进行不同条件的like模糊查询的方法
之前一直是用MyBatis进行SQL查询时,一般都是用Generator逆向生产的代码来进行查询. 现在遇到了一个业务问题,我们需要进行对不同的条件分别进行模糊查询,首先我想到的就是根据对需要进行模糊查询的字段进行判断,然后调用Example的方式进行查询条件的注入. 对于String类型的数据可以有Like查询这个方法,但是Integer或者Long这种数据类型的话就没有了,得需要自己动手写. 但是呢,我利用Generator生成的代码Example方式进行模糊查询时确无法实现,原因不太清楚,
-
MyBatis实现模糊查询的几种方式
在学习MyBatis过程中想实现模糊查询,可惜失败了.后来上百度上查了一下,算是解决了.记录一下MyBatis实现模糊查询的几种方式. 数据库表名为test_student,初始化了几条记录,如图: 起初我在MyBatis的mapper文件中是这样写的: <select id="searchStudents" resultType="com.example.entity.StudentEntity" parameterType="com.exampl
-
MyBatis的模糊查询mapper.xml的写法讲解
目录 MyBatis模糊查询mapper.xml的写法 1.直接传参 2.针对MySQL数据库的语句 3.适用于所有数据库的则采用MyBatis的bind元素 MyBatis在xml中模糊查询的常用的3种方式 MyBatis模糊查询mapper.xml的写法 模糊查询语句不建议使用${}的方式,还是建议采用MyBatis自带的#{}方式,#{}是预加载的方式运行的,比较安全,${}方式可以用但是有SQL注入的风险!!! 1.直接传参 在controller类中 String id = "%&qu
-
Mybatis 中 Oracle 的拼接模糊查询及用法详解
一.结论 这里先给大家看一下结论 Oracle 中,拼接模糊查询的正确写法 SELECT A.USER_ID, A.USER_NAME FROM USER A AND A.USER_NAME like concat(concat('%','w'),'%') 或者 AND A.USER_NAME like '%' || 'w' || '%' Mybatis 中,拼接模糊查询的正确写法 <select id="selectByName" resultMap="BaseRes
-
mybatis 使用concat 模糊查询方式
目录 使用concat 模糊查询 本举例 注意 模糊查询使用concat('%',#{str},'%')出错 使用concat 模糊查询 <select id="queryByKeyWord" resultType="com.mingdutech.xelerator.eln.dto.ApparatusDto"> select distinct b.* from base_apparatus b left join base_apparatus_colum
-
Mybatis使用MySQL模糊查询时输入中文检索不到结果怎么办
项目开发中,在做Mybatis动态查询时,遇到了一个问题:MySQL在进行LIKE模糊查询时,输入英文可以正常检索出结果,但是输入中文后检索得到的结果为空. 由于是使用GET方式请求,所以为了确保中文不乱码,在控制台接收到请求参数后,对中文进行了一次编码. try { realName = new String(realName.getBytes("GBK"), "UTF-8"); } catch (UnsupportedEncodingException exce
-
MyBatis中的模糊查询语句
其实就只有一条sql语句 <select id = "search" resultType = "material"> select material_id,material_num,material_name,material_type,material_model,id from material where material_name like '%${value}%' or material_num like '%${value}%' </
-
python中数据库like模糊查询方式
在Python中%是一个格式化字符,所以如果需要使用%则需要写成%%. 将在Python中执行的sql语句改为: sql = "SELECT * FROM table_test WHERE value LIKE '%%%%%s%%%%'" % test_value 执行成功,print出SQL语句之后为: SELECT * FROM table_test WHERE value LIKE '%%public%%' Python在执行sql语句的时候,同样也会有%格式化的问题,仍然需要使
-
Mybatis CURD及模糊查询功能的实现
命名空间namespace: 配置文件中namespace中的名称为对应Mapper接口或者Dao接口的完整包名,必须一致! 1.查询(select) select: 接口中的方法名与映射文件中的SQL语句ID 一一对应 id parameterType resultType 案例:根据id查询用户 1.写接口(在UserMapper中添加对应的方法) public interface UserMapper { //根据ID查询用户 User getuserByID(int id); } 2.U
-
Mybatis mysql模糊查询方式(CONCAT多个字段)及bug
目录 Mybatis mysql模糊查询及bug 解决方案:一 解决方案:二 mybatis多个字段如何模糊查询一个值 Mybatis mysql模糊查询及bug 先看下如下xml SELECT t.id, t.mobile, t.account_name FROM t_account t WHERE 1=1 <if test="keyWord !=null and keyWord !=''"> and CONCAT(t.id,t.mobile,t.account_name
-
mybatis分页及模糊查询功能实现
mybatis中分页有3种方式来实现,通过sql语句(两种传参方式)来实现,通过mybatis 的 Rowbounds 来实现. 通过(自定义类型)传参 来实现分页: 映射文件: <select id="findListBypage" parameterType="cn.wh.util.PageUtil" resultType="Role"> select * from t_role limit #{index},#{size} &l
-
vue和js中实现模糊查询方式
目录 vue和js实现模糊查询 如何实现? 方法1 方法2 方法3 正则表达式实现模糊查询 vue和js实现模糊查询 先来看效果图 这种数据量少的场景适用于前端实现模糊查询 如何实现? <template> <div class="container"> <div class="search-bar"> <el-input v-model="inputVal" placeholder="请输入图
-
Mybatis和Mybatis-Plus时间范围查询方式
一.mysql 1.传入时间范围参数类型是字符串 <if test="startTime!=null and startTime.trim() neq ''"> and date_format(create_time,'%Y-%m-%d %H:%i:%s') >= str_to_date(#{startTime},'%Y-%m-%d %H:%i:%s') </if> <if test="endTime!=null and endTime.t
-
mybatis like模糊查询特殊字符报错转义处理方式
目录 like模糊查询特殊字符报错转义处理 方案1 方案2 like模糊查询中包含有特殊字符(_.\.%) 处理 注意 like模糊查询特殊字符报错转义处理 方案1 <if test="projectName!=null and projectName!=''"> <bind name="projectName_" value="'%'+projectName+'%'"/>
随机推荐
- JS中的二叉树遍历详解
- 解决ios模拟器不能弹出键盘问题的方法
- 在ASP.net中保存/取出图片入/从SQL数据库
- php escape URL编码
- 利用php+mysql来做一个功能强大的在线计算器
- 详解Python字符串对象的实现
- 详解从零开始---用C#制作扫雷游戏
- MySQL分表实现上百万上千万记录分布存储的批量查询设计模式详解
- jQuery使用attr()方法同时设置多个属性值用法实例
- jQuery(1.6.3) 中css方法对浮动的实现缺陷分析
- php5编程中的异常处理详细方法介绍
- JSP自定义标签简单入门教程
- Android 动画实现几种方案
- jb51站长推荐的用js实现的多浏览器支持的图片轮换展示效果ie,firefox
- 基于jQuery的实现简单的分页控件
- jQuery中prop()方法用法实例
- android 解析json数据格式的方法
- 根据ID填充文本框的实例代码
- jQuery应用中特殊字符处理的问题
- JS图片定时翻滚效果实现方法