需求:一个搜索框同时对userId和title进行模糊查询。


第一次:


   <where><if test="disId!=null and disId != '' " >and DIS_ID = #{disId}</if><if test="category!=null" >and CATEGORY = #{category}</if><if test="userId!=null" >and USER_ID like CONCAT('%',#{userId},'%' )   </if><if test="userType!=null" >and USER_TYPE = #{userType}</if><if test="title!=null" >and TITLE like CONCAT('%',#{title},'%' )   </if></where>
![日志里的SQL是这样的](https://img-blog.csdn.net/20160707230448959)这种方式查询时,日志里的SQL如上所示,会导致对2个字段进行AND查询,只有都具有相同关键字时才可以被查出来。*

第二次:

*

     <trim prefix="where" prefixOverrides="and \ or"><if test="disId!=null and disId != '' " >and DIS_ID = #{disId}</if><if test="category!=null" >and CATEGORY = #{category}</if><if test="userId!=null" >and USER_ID like CONCAT('%',#{userId},'%' )   </if><if test="userType!=null" >and USER_TYPE = #{userType}</if><if test="title!=null" >and TITLE like CONCAT('%',#{title},'%' )   </if></trim></select>

在日志中会出现如上图所示的错误,很明显,userId字段前多了“and”,TITLE前应该为“or”。

第三次:

`from QUESTION<trim prefix="where" prefixOverrides="and \ or"><if test="disId!=null and disId != '' " >DIS_ID = #{disId}</if><if test="category!=null" >CATEGORY = #{category}</if><if test="userId!=null" >USER_ID like CONCAT('%',#{userId},'%' )   </if><if test="userType!=null" >USER_TYPE = #{userType}</if><if test="title!=null" >or TITLE like CONCAT('%',#{title},'%' )   </if></trim></select>

trim标签中不要条件字段,只在 第一个以后的字段前加“or”即可。
好了!

mybatis同一个搜索框对多个字段进行模糊查询相关推荐

  1. html搜索框 模糊搜索,前端js模糊搜索(模糊查询)

    1.html结构: /*查询结果放ul里面*/ 2.css样式: #searchShop { line-height: 28px; text-indent: 5px; width: 180px; fl ...

  2. Elasticsearch 字段可以模糊查询也可完全匹配查询(实例)

    需求: 比如创建用户, 需要判断name是否重复后, 没有重复才插入数据, 创建好之后又需要模糊查询用户昵称name.  这时候name字段类型就需要具备分词并且可完全匹配搜索. 直接上代码: 创建映 ...

  3. mysql 单表多字段查询_单表多字段MySQL模糊查询的实现

    MySQL模糊查询是我们经常会遇到的,下面就为您介绍MySQL模糊查询的实现方法,希望对您学习MySQL模糊查询方面能够有所帮助. 在最近的一个项目需要实现在单表中对多字段进行多个关键字的MySQL模 ...

  4. mybatise 实现同一字段多模糊查询

    mybatise 同一字段多模糊查询 <foreach collection="typeList" index="index" item="it ...

  5. JS模拟京东搜索框案例 模拟京东快递单号查询案例

    模拟京东搜索框案例 <!DOCTYPE html> <html lang="en"><head><meta charset="U ...

  6. Mybatis的如何根据下划线_,百分号%模糊查询---escape的作用

    在使用mybatis的模糊查询时,有两个特殊符号需要注意: %:相当于任意多个字符: _:相当于任意的单个字符: 我们需要对特殊字符进行转义,如: public static String escap ...

  7. mysql全文搜索实现模糊查询_mysql使用全文索引实现大字段的模糊查询

    0.场景说明 centos7 mysql5.7 InnoDB引擎 0.1创建表 DROP TABLE IF EXISTS tbl_article_content; CREATE TABLE tbl_a ...

  8. mysql 多字段关键词模糊查询

    使用上表举例: 1,输入单个关键字"001"可查出四条数据,可实现的sql语句是: SELECT * FROM tb WHERE CONCAT(applicationCode, c ...

  9. SQL语句模糊查询 JavaWeb 项目 dao层 【常用来做搜索框】

    目的:搜索框,通过输入一些关键词,查询含有关键词的书名 通过一条查询语句能够实现用户所有的条件进行查询 刚开始的SQL语句如下: String sql = "SELECT * FROM bo ...

最新文章

  1. 斐波那契数列性质【记住】
  2. c语言和画图软件,大佬们,小菜鸟想问一问用vc编译器做简易画图软件
  3. 随笔-通过session判断用户密码输入错误三次,输入验证码
  4. oracle tns连接拒绝,TNS-12564: TNS: 拒绝连接(new)
  5. Metasploit AFP爆破模块afp_login
  6. java二维对象数组存入文件_关于Java:将2D数组保存到磁盘文件
  7. java课程设计图片浏览器_java课程设计图片浏览器
  8. 数据结构和算法之数组模拟队列
  9. Linux Vi常用技巧
  10. php数据类型_PHP数据类型能力问题和解答
  11. docker 安装的东西都在哪儿_热水器越来越不流行了,如今都安装这东西,好用安全,还省电费...
  12. 基于JAVA+SpringBoot+Vue+Mybatis+MYSQL的在线音乐网站
  13. python 统计英文词频
  14. SI4463研究计划(兼STM32F0进一步加深理解)
  15. win7计算机共享用户名和密码,Win7共享提示用户名密码错误怎么办
  16. codeforces 558 D Guess Your Way Out! II
  17. 地理信息系统和计算机系统的区别,GIS与其他信息系统的区别
  18. spring中AOP(面向切面编程)
  19. lumen php命令,lumen添加artisan 命令方法
  20. 刚到马来西亚旅游怎么临时解决电话卡问题

热门文章

  1. cache与MMU与总线仲裁
  2. 《学习高手》【上】学习记录
  3. 如何从零做私域流量社群运营sop工作步骤管理规划方案表格计划
  4. [W5500应用]用Microduino实现网页控制恒温饮水机以及电灯
  5. 量化投资八大常见误区
  6. These critical programs are missing or too old: make compiler
  7. 揭秘产品高手的底层逻辑
  8. vue fromData提交表单(文件)的同时 axios通过将token封装一起发送,Springboot后端拦截器通过request.getParameter获取,Redis验证token
  9. 迷你PC平台 pcDuino
  10. MySQL数据库的下载和安装