我是靠谱客的博主 积极啤酒,这篇文章主要介绍sql语句中下划线_,百分号%处理,现在分享给大家,希望可以做个参考。

sql语句中下划线_,百分号%处理

1、使用ESCAPE定义转义符

复制代码
1
2
3
4
如下面的表达式: LIKE '%M%' ESCAPE ‘M' 使用ESCAPE关键字定义了转义字符“M”,告诉DBMS将搜索字符串“%M%”中的第二个百分符(%)作为实际值,而不是通配符。当然,第一个百分符(%)仍然被看作是通配符,因此满足该查询条件的字符串为所有以%结尾的字符串。

2、使用INSTR替换like

复制代码
1
2
3
4
5
6
INSTR不会识别通配符,只会判断第二个字符串参数在第一个字符串中是否存在。确保此论是有据可依的,上官网。 使用: select * form users where INSTR(users_name,‘用户输入’) 等同于 select * from users where users_name like CONCAT('%','用户输入','%'),简单来说,INSTR就相当于java中的 string.contains("")方法

3、扩展

mybatis like 模糊查询的集中常见方式

  1. 参数中直接加入%%

param.setUsername("%CD%");
param.setPassword("%11%");

复制代码
1
2
3
4
5
6
7
<select id="selectPersons" resultType="person" parameterType="person"> select id,sex,age,username,password from person where true <if test="username!=null"> AND username LIKE #{username}</if> <if test="password!=null">AND password LIKE #{password}</if> </select>
  1. bind标签

    复制代码
    1
    2
    3
    4
    5
    6
    7
    <select id="selectPersons" resultType="person" parameterType="person"> <bind name="pattern" value="'%' + _parameter.username + '%'" /> select id,sex,age,username,password from person where username LIKE #{pattern} </select>
  2. CONCAT

    复制代码
    1
    2
    where username LIKE concat(concat('%',#{username}),'%')

mybatis 中不同数据库的sql拼接方式

复制代码
1
2
3
4
5
6
7
<if test="companyName != null and companyName != ''"> AND a.company_name LIKE <if test="dbName == 'oracle'">'%'||#{companyName}||'%' ESCAPE '/'</if> <if test="dbName == 'mssql'">'%'+#{companyName}+'%'</if> <if test="dbName == 'mysql'">concat('%',#{companyName},'%')</if> </if>

最后

以上就是积极啤酒最近收集整理的关于sql语句中下划线_,百分号%处理的全部内容,更多相关sql语句中下划线_内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(53)

评论列表共有 0 条评论

立即
投稿
返回
顶部