Mybatis中模糊查询Mysql的方法
Posted CuratorCrision
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mybatis中模糊查询Mysql的方法相关的知识,希望对你有一定的参考价值。
mybatis的模糊查询功能使用的很广泛,以mysql数据库为例(不同的数据库,有些可能不支持)
常用的模糊查询有三种方法:
- 直接使用 % 拼接字符串,如 ‘%’#name’%’ 或 “%”#name"%",单引号或双引号都可以。
- 使用concat(str1,str2)函数拼接
- 使用mybatis的bind标签
<!-- ******************** 模糊查询的常用的3种方式:********************* -->
<select id="getUsersByFuzzyQuery" parameterType="User" resultType="User">
select <include refid="columns"/> from users
<where>
<!--
方法一: 直接使用 % 拼接字符串
注意:此处不能写成 "%#name%" ,#name就成了字符串的一部分,
会发生这样一个异常: The error occurred while setting parameters,
应该写成: "%"#name"%",即#name是一个整体,前后加上%
-->
<if test="name != null">
name like "%"#name"%"
</if>
<!--方法二: 使用concat(str1,str2)函数将两个参数连接 -->
<if test="phone != null">
and phone like concat(concat("%",#phone),"%")
</if>
<!--方法三: 使用 bind 标签,对字符串进行绑定,然后对绑定后的字符串使用 like 关键字进行模糊查询 -->
<if test="email != null">
<bind name="pattern" value="'%'+email+'%'"/>
and email like #pattern
</if>
</where>
</select>
以上是关于Mybatis中模糊查询Mysql的方法的主要内容,如果未能解决你的问题,请参考以下文章
mybatis中使用mysql的模糊查询字符串拼接(like)