mybatis之模糊查询

2 篇文章 0 订阅

项目场景:

最近写项目时有个功能点用到了模糊查询,就是根据用户输入的姓名、手机号、和身份证号这三个字段的相关信息进行模糊查询,当时感觉这个功能很简单,无非就类似于预编译语句,再用or关键字连接另外两个字段嘛,然后查询出相关内容。

问题描述:

写好语句后,再数据库中也跑了跑,都能出结果,可是运用到项目中就不行,总是查询不出任何结果

  • :再数据库中运行

在这里插入图片描述

原因分析:

既然时查询不出语句,而传入参数又没任何错误的话,那就只能时sql语句了,于是我又检查了下我的sql语句:如下

 <select id="queryLikeAllEmp" resultMap="BaseResultMap">
    SELECT
     <include refid="Base_Column_List" />
     FROM employee WHERE employee_name LIKE '%#{information}%' OR employee_number like '%#{information}%'OR employee_phone LIKE'%#{information}%'
    </select>

写到这,相信遇到过相同bug的猿友们都看出了,那就是错在了这:
在这里插入图片描述

解决方案:

木错,就是败在了这小小的单引号上,因为#{…}解析成sql语句时候,会在变量外侧自动加单引号’ ',所以这里 % 需要使用双引号" ",不能使用单引号 ’ ',不然会查不到任何结果。
正确写法:

<select id="queryLikeAllEmp" resultMap="BaseResultMap">
    SELECT
     <include refid="Base_Column_List" />
     FROM employee WHERE employee_name LIKE "%"#{information}"%" OR employee_number like "%"#{information}"%"OR employee_phone LIKE "%"#{information}"%"
    </select>

这时,在输入各种模糊查询条件,就能查询出结果了,如下:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
到这,就完成了模糊查询,祝大家都能学有所成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值