Mybatis 实现一个搜索框对多个字段进行模糊查询

1、问题描述:

最近项目需要提供一个搜索框对多个字段进行模糊查询的操作代替下拉列表选择单个字段条件进行模糊查询的操作。

2、解决办法:

之前的四个条件的模糊查询代码

 <if test="featureCode != null">
 AND plm_model_option.feature_code= #{featureCode}
 </if>
 <if test="featureName != null">
 AND plm_feature_lib.feature_name= #{featureName}
 </if>
 <if test="optionCode != null">
 AND plm_model_option.option_code= #{optionCode}
 </if>
 <if test="optionName != null">
 AND plm_option_lib.option_name= #{optionName}
 </if>

现在进行模糊查询的代码:

<if test="searchStr!=null and searchStr!=''">
 AND
 CONCAT(plm_model_option.feature_code,plm_feature_lib.feature_name,plm_model_option.option_code,plm_option_lib.option_name) LIKE CONCAT ('%', #{searchStr},'%')
</if>

补充:最新Mybatis关键字模糊查询结果检索多个字段解决方案

Mybatis用户名模糊查询,账号模糊查询我相信大家都会。那么如何输入关键字之后既可以查询到用户名的结果又可以查询到账号的结果呢?

我这里设定的是id和username两个字段的关键字模糊查询。

先看下效果图:

关键字搜索之前的列表数据

关键字搜索之后的数据

实现核心代码:

<select id="list" resultType="com.swkj.pojo.Member">
 SELECT *
 FROM tb_member
 WHERE 1=1
 <if test="keyword!='' and keyword!=null">
  <!--bind 标签的两个属性都是必选项, name 为绑定到上下文的变量名,value为OGNL表达式。-->
  <bind name="pattern" value="'%' + keyword + '%'"/>
  and CONCAT(username,id) like #{pattern}
 </if>
 <if test="sdate!='' and sdate!=null">
  and starttime>=#{sdate}
 </if>
 <if test="edate!='' and edate!=null">
  and starttime&lt;=#{edate}
 </if>
 limit #{m},#{n}
 </select>

原理分析:

这里其实就是在where条件后面将id和username通过concat()函数连接了起来,然后在对关键字进行模糊查询,就能得到自己想要的结果了。So easy!

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。

(0)

相关推荐

  • MyBatis-plus 模糊查询的使用

    在使用MyBatis-plus的时候,一些基础的增删改查可以不用再自己写sql了: public interface UserDao extends BaseMapper<FykUser>{ } 就这样,就可以实现user表的增删改查了. 模糊查询 使用userDao.selectList(queryWrapper)方法,就可以查询出一个用户列表. 如果需要模糊查询,代码如下: //条件封装 QueryWrapper<FykUser> queryWrapper = new Quer

  • Mybatis模糊查询和动态sql语句的用法

    Mybatis 模糊查询和动态sql语句 模糊查询 对数据库最常用的操作就是查询了,但是如何使用Mybatis进行模糊查询呢?下面先看一个简单的模糊查询 <select id="select01" resultMap="BasicResultMap"> SELECT * FROM oa_employee WHERE emp_name LIKE #{asd} </select> 这是一条伪模糊查询, 因为没有实现真正的模糊 "%&qu

  • Mybatis模糊查询及自动映射实现详解

    这篇文章主要介绍了Mybatis模糊查询及自动映射实现详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Mybatis的模糊查询 1. 参数中直接加入%% 1 2 3 4 5 6 7 8 9 param.setUsername("%CD%"); param.setPassword("%11%"); <select id="selectPersons" resultType="p

  • 详解MyBatis模糊查询LIKE的三种方式

    模糊查询也是数据库SQL中使用频率很高的SQL语句,使用MyBatis来进行更加灵活的模糊查询. 直接传参法 直接传参法,就是将要查询的关键字keyword,在代码中拼接好要查询的格式,如%keyword%,然后直接作为参数传入mapper.xml的映射文件中. public void selectBykeyWord(String keyword) { String id = "%" + keyword + "%"; String roleType = "

  • MyBatis实现模糊查询的几种方式

    在学习MyBatis过程中想实现模糊查询,可惜失败了.后来上百度上查了一下,算是解决了.记录一下MyBatis实现模糊查询的几种方式. 数据库表名为test_student,初始化了几条记录,如图: 起初我在MyBatis的mapper文件中是这样写的: <select id="searchStudents" resultType="com.example.entity.StudentEntity" parameterType="com.exampl

  • mybatis模糊查询、分页和别名配置的方法

    mybatis模糊查询(3种) 第一种 select * from user where username like "%" #{name} "%" 第二种 select * from user where username like "%${value}%" 第三种 <!--concat拼接字符串 mysql独有的函数--> select * from user where username like concat("%&

  • Mybatis 实现一个搜索框对多个字段进行模糊查询

    1.问题描述: 最近项目需要提供一个搜索框对多个字段进行模糊查询的操作代替下拉列表选择单个字段条件进行模糊查询的操作. 2.解决办法: 之前的四个条件的模糊查询代码 <if test="featureCode != null"> AND plm_model_option.feature_code= #{featureCode} </if> <if test="featureName != null"> AND plm_featur

  • Node实现搜索框进行模糊查询

    本文实例为大家分享了Node实现搜索框进行模糊查询的具体代码,供大家参考,具体内容如下 一.需求 点击导航栏中的搜索图,出现搜索框,从而进行文章的模糊查询 二.建表 1.blog表 添加外键: 2.nav表 3.type表 4.user表 三.页面及样式 like.ejs: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta n

  • 自动完成的搜索框javascript实现

    在很多需要搜索的网站, 都会有一个自动完成的搜索框. 方便用户查找他们想要的搜索词. 帮助用户快速找到自己想要的结果. 这种方式是比较友好的. 所以是比较提倡使用的. 我们这次就来实现这一效果. 我们通过两篇文章来进行讲解. 首先我们来完成界面的设计布局. 界面的HTML结构, 第一个少不了的是一个搜索框, 第二个就是搜索的点击按钮. <div class="search"> <input type="text" value=""

  • Android搜索框组件SearchView的基本使用方法

    SearchView是android系统中内置的一个搜索框组件,可以很方便在添加在用户界面之上,但是也带来了一些问题,那就是searchview的UI是固定的,定制起来会很麻烦,如果对SearchView的要求比较高,完全可以采用button和EditText自己实现.这里先简单的说说SearchView的使用: main.xml: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" x

  • CSS3,HTML5和jQuery搜索框集锦

    添加搜素框或网站搜索功能是为了方便用户能够轻松.快捷地找到自己需要的信息.因此,在网站中添加一个搜索框已经成为网页设计的主流元素之一.添加一个搜索框到网站会使得用户界面更加友好,也能帮助用户轻松愉快地浏览. 脉动的CSS3输入搜索框 输入搜索框带有边框和类似脉冲的阴影跳动. 纯CSS的建议搜索框 这是一个使用纯CSS构建扩展建议搜索框的简单教程. CSS的扩大搜索框 扩大搜索框是一个点击或输入东西时会变宽的一个简单搜索框. 使用CSS转换扩大搜索栏 我们将利用CSS转换扩展了的搜索栏.搜索栏最初

  • 深入浅析search 搜索框的写法

    关于搜索框,写法有很多种,搜索框这一块是一个比较细的活,要先计算好他的高.宽: 下面我就以京东搜索框为例,给大家浅析一下. 上面就是最终search框效果图. 先送出代码>>>>>> <span style="color: rgb(255, 0, 255); font-size: 18pt;"><strong>HTML 标签:</strong></span> <div class="ce

  • Android 根据EditText搜索框ListView动态显示数据

    根据EditText搜索框ListView动态显示数据是根据需求来的,觉得这之中涉及的东西可能比较的有意思,所以动手来写一写,希望对大家有点帮助. 首先,我们来分析下整个过程: 1.建立一个layout,包含一个EditText搜索框和一个ListView 2.创建一个数据集mData,用于ListView的Adapter的创建 3.添加EditText的文本改变的监听器 4.利用notifyDataSetChanged()动态更新ListView 第一步:创建一个搜索框 这个还是比较容易的,这

  • Android自定义View实现搜索框(SearchView)功能

    概述 在Android开发中,当系统数据项比较多时,常常会在app添加搜索功能,方便用户能快速获得需要的数据.搜索栏对于我们并不陌生,在许多app都能见到它,比如豌豆荚 在某些情况下,我们希望我们的自动补全信息可以不只是纯文本,还可以像豌豆荚这样,能显示相应的图片和其他数据信息,因此Android给我们提供的AutoCompleteTextView往往就不够用,在大多情况下我们都需要自己去实现搜索框. 分析 根据上面这张图,简单分析一下自定义搜索框的结构与功能,有 1. 搜索界面大致由三部门组成

  • 微信小程序搜索框样式并实现跳转到搜索页面(小程序搜索功能)

    上效果图: 一:搜索框功能实现 1.在首页做一个搜索框的样式并实现跳转到搜索页面 <view class='page_row' bindtap="suo"> <view class="search"> <view class="df search_arr"> <icon class="searchcion" size='20' type='search'></icon>

  • iOS 使用UITextField自定义搜索框 实现用户输入完之后“实时搜索”功能

    注:CSDN的代码块有点捞,如果浏览器窗口较窄,一行代码占了两行的位置,后面的代码就看不到了,大家可以把浏览器窗口拉大一点 UI小姐姐设计的搜索框经常是五花八门,系统的搜索框经常不能满足我们的需求,需要我们特别定制一个.但是UITextField的诸多回调里面,没有一个是适合触发搜索时间的. UITextFieldTextDidChangeNotification调用过于频繁,每输入一个字符就调一次接口怕是不太合适. UITextFieldTextDidEndEditingNotificatio

随机推荐