在开发中,测试提出了一个bug,在某搜索中,搜索 _,结果把不包含下划线的内容也查了出来!这是什么问题呢?今天特此记录一下,顺便给大家分享下!

 原sql:select * from table where condition like '%_%';

结果: 搜索出来的是全部。

原来,在mysql 中,下划线 _ 代表 全部 基本上等同于 *。

解决方案:

 对sql 用 \ 进行转义:

最终达到的 sql效果 :select * from table where condition like '%\_%';

在此之前,在程序中对该关键字进行转义。

方法如下:(我接触的是nodejs,此处就用js来表达);

const search = function(str){

if(str){

let aStr = Array.from(str); // 将字符转成数组

for(let i = 0;i < aStr.length; i++){  // 遍历数组

if(aStr[i]=='_'){   // 如果检测到下划线

                                  aStr[i] = '\\_'; // 此处需要转译 \_ 所以用两个\

}

}

str = aStr.join(''); // 把数组转成字符串

}

//  下面执行 你的数据库操作

...

}

希望能帮到各位小伙伴!

mysql 模糊查询之特殊字符下划线 _相关推荐

  1. MySql模糊查询中特殊字符处理

    2019独角兽企业重金招聘Python工程师标准>>> MySql的LIKE查询语句中,有一些特殊的字符,需要转换后才能搜索到结果: ':用于包裹搜索条件,需转为\': %:用于代替 ...

  2. mysql 模糊查询下划线_mybatis模糊查询特殊符号%(百分号)和_(下划线)不转义

    在使用mybatis的模糊查询时,有两个特殊符号需要注意: %(百分号):相当于任意多个字符: _(下划线):相当于任意的单个字符: 处理方法: 1: (查询条件参数,比如"xx%_x&qu ...

  3. mysql模糊查询 % , _ ,[], [^] 的区别

    mysql模糊查询总结 1. % 表示任意0个或多个字符 2. _ 表示任意单个字符(有且仅有一个字符,可以是中文,也可以是英文,也可以是数字) 3. [] 表示其中的某一个字符 4. [^] 表示除 ...

  4. mysql模糊查询提速_【MySQL】Mysql模糊查询like提速优化

    [MySQL]Mysql模糊查询like提速优化 在使用msyql进行模糊查询的时候,很自然的会用到like语句,通常情况下,在数据量小的时候,不容易看出查询的效率,但在数据量达到百万级,千万级的时候 ...

  5. mysql 单表多字段查询_单表多字段MySQL模糊查询的实现

    MySQL模糊查询是我们经常会遇到的,下面就为您介绍MySQL模糊查询的实现方法,希望对您学习MySQL模糊查询方面能够有所帮助. 在最近的一个项目需要实现在单表中对多字段进行多个关键字的MySQL模 ...

  6. mysql模糊查询 or_mysql的模糊查询

    mysql模糊查询like/REGEXP (1)like / not like MySql的like语句中的通配符:百分号.下划线和escape %:表示任意个或多个字符.可匹配任意类型和长度的字符. ...

  7. MySql模糊查询like通配符的使用

    MySql模糊查询like通配符使用详细介绍 ------------------------------------------------------ %代表任意多个字符  _代表一个字符 在 M ...

  8. 怎样在oracle中加下划线,Oracle使用like查询时对下划线的处理方法

    如:查询ZJ_STANDARD_ITEM表的name1字段包含"_("的数据 --以下的查询语句执行会发现所查询的数据并不是我们想要数据 select * from ZJ_STAN ...

  9. mysql模糊查询like

    mysql模糊查询like 1:%:表示任意0个或多个字符 可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示. 比如:SELECT * FROM [user] WHERE ...

最新文章

  1. PCL基础2:点云赋值
  2. MySQL replace into 的坑以及insert相关操作
  3. MySQLWorkbench里的稀奇事之timestamp的非空默认值
  4. 2个菜鸟Java常量和枚举陷阱
  5. 五种线程池的对比与使用
  6. 利用 Linux tap/tun 虚拟设备写一个 ICMP echo 程序
  7. mysql日期纬度表_mysql中生成时间维度表
  8. 目标检测排行榜_3D领域重大突破!大华股份人工智能取得KITTI Object 3D车辆检测排行榜第一名...
  9. 在Python中使用MongoDB
  10. 前方预警!Windows Server 将默认需符合 TPM2.0,服务器商需在来年 1 月 1 日前适配相应规则...
  11. 十四、View Port 2.0
  12. linux系统安装snort,linux下SNORT安装.doc
  13. 台达b3伺服参数设置方法_台达B2系列伺服电机的调试方法和注意事项
  14. eclipse安卓插件ADT下载地址
  15. ec12编码器电路图_旋转编码器电路原理图
  16. SiamRPN代码分析:training
  17. 为什么拼多多推广出价没人点击?新店铺怎么推广?
  18. opensparc中的crossbar
  19. 人工智能之经典逻辑推理
  20. C语言实现通讯录(含文件保存)

热门文章

  1. 关于含光 800,这里有你想要的一切答案!
  2. @程序员,别再让 Hotplug 问题难住你!
  3. 编程面试问题越难越好?!
  4. 华为起诉美国政府新进展;小米空调对董明珠“没有压力”;扎克伯格:后悔没早点学微信 | 极客头条...
  5. C++ 的门门道道 | 技术头条
  6. 2019 年的 Linux 会如何?
  7. 1024程序员节:除了高薪,你还有什么理由坚持做程序员?
  8. IBM 发布企业级社交协作平台 Domino V10,开启快速应用程序开发的新时代
  9. 如何使用 Python 构建 PC 通信?
  10. 给 iOS 11.3 降个级?苹果果断关闭 11.2.6 验证通道