前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Mysql常用sql语句(9)- like 模糊查询

Mysql常用sql语句(9)- like 模糊查询

作者头像
小菠萝测试笔记
发布2020-06-09 16:13:28
2.7K0
发布2020-06-09 16:13:28
举报

测试必备的Mysql常用sql语句系列

https://www.cnblogs.com/poloyy/category/1683347.html

前言

  • like应该是最常用的查询条件了
  • 必须滴掌握!

like的语法格式

代码语言:javascript
复制
LIKE  '字符串'
NOT LIKE  '字符串'
  • NOT:取反,不满足指定字符串时匹配
  • 字符串:可以是精确的字符串,也可以是包含通配符的字符串
  • LIKE支持 和 _ 两个通配符

%

确认测试表里有什么数据,方便后面的栗子做对比

% 通配符查询的栗子

  • 应该是最常用的通配符了,它代表任意长度的字符串,包括0

%

  • 比如: 表示以字母 a 开头,以字母 b 结尾的任意长度的字符串;该字符串可以代表 ab、acb、accb、accrb 等字符串

a%b

查询username字段包含test的记录
代码语言:javascript
复制
select * from yyTest where username like "%test%";
查询username字段开头不为test且department字段不等于seewo的记录
代码语言:javascript
复制
select * from yyTest where username not like "test%" and department = "seewo";
知识点

匹配的字符串必须加单引号或双引号 like "%test%"

_ 通配符查询的栗子

  • 只能代表单个字符,字符的长度不能等于0,即字符长度必须等于1;相对于 % 来说, _ 肯定没这么常用

_

  • 比如: 可以代表 acb、adb、aub 等字符串

a_b

查询username字段test开头且后面只跟一个字符结尾的记录
代码语言:javascript
复制
select * from yyTest where username like "test_";

like 区分大小写的栗子

  • 默认情况下,like匹配的字符串是不区分大小写的; 和 like "TEST1" 匹配的结果是一样的

like "test1"

  • 如果需要区分大小写,需要加入 关键字

binary

不会返回任何记录,test1和test2不会被匹配到
代码语言:javascript
复制
select * from yyTest where username like binary "TEST_";

使用转义符的栗子

  • 如果查询的字符串包含%,可以使用 转义符

\

  • 实际场景:搜索功能,搜索框只输入%看是否返回所有记录,如果是的话证明没有做转义可以提个优化项哦!
转义符+通配符联合使用的栗子
代码语言:javascript
复制
select * from yyTest where username like "%\%"

使用通配符的注意点

  • 注意大小写:不加binary关键字的话,大小写是不敏感的
  • 注意头部、尾部多余的空格: 是不会匹配到“test1”的

" test% "

  • 注意NULL:通配符是不能匹配到字段为NULL的记录的
  • 不要过度使用通配符:因为Mysql对通配符的处理速度会比其他操作花费更长的时间
  • 在确定使用通配符后:除非绝对有必要,否则不要把它们用在字符串的开始处,把通配符置于搜索模式的开始处,搜索起来是最慢的。
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-05-11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • like的语法格式
  • 确认测试表里有什么数据,方便后面的栗子做对比
  • % 通配符查询的栗子
    • 查询username字段包含test的记录
      • 查询username字段开头不为test且department字段不等于seewo的记录
        • 知识点
        • _ 通配符查询的栗子
          • 查询username字段test开头且后面只跟一个字符结尾的记录
          • like 区分大小写的栗子
            • 不会返回任何记录,test1和test2不会被匹配到
            • 使用转义符的栗子
              • 转义符+通配符联合使用的栗子
              • 使用通配符的注意点
              相关产品与服务
              云数据库 SQL Server
              腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档