在 MyBatis 中,可以使用 %
和 _
通配符来进行模糊查询。
下面是一个示例的模糊查询语句:
<select id="seleteUser" resultType="com.example.goods_admin.entity.User">select * from user<where><if test="keyWord !=null and keyWord!=''">userName like concat('%', #{keyWord}, '%')</if></where></select>
在上述代码中,#{keyword}
是一个占位符,表示要查询的关键字。like关键字用于进行模糊匹配,concat()
函数用于拼接字符串。
%
和 _
通配符
-
%
通配符:%
通配符表示任意数量的字符(包括零个字符)。在模糊查询中,%
通配符可以匹配任意长度的字符串。例如,如果要查询以 "abc" 开头的所有记录,可以使用 like'abc%
'。 -
_
通配符:_
通配符表示单个字符。在模糊查询中,_
通配符可以匹配一个任意字符。例如,如果要查询第二个字符为 "b" 的所有记录,可以使用like'_b%'
。
区别:
%
通配符可以匹配任意长度的字符串,而_
通配符只能匹配单个字符。%
通配符可以出现在字符串的开头、中间或结尾,而_
通配符只能出现在字符串的中间位置。
以下是一些示例:
like'abc%'
:匹配以 "abc" 开头的字符串,如 "abc123"、"abcd"。like'%xyz'
:匹配以 "xyz" 结尾的字符串,如 "123xyz"、"abcdxyz"。like'%abc%'
:匹配包含 "abc" 的任意位置的字符串,如 "123abc456"、"abcxyz"。like'_b%'
:匹配第二个字符为 "b" 的字符串,如 "ab123"、"cbxyz"。