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

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

1、使用ESCAPE定义转义符

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

2、使用INSTR替换like

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. bind标签

    
    
  2. CONCAT

    where username LIKE concat(concat('%',#{username}),'%')
    

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

  
   AND a.company_name LIKE   
'%'||#{companyName}||'%' ESCAPE '/'  
'%'+#{companyName}+'%'  
concat('%',#{companyName},'%')  
  

你可能感兴趣的:(sql语句中下划线_,百分号%处理)