mysql 通配符与模式匹配用法详解

一、通配符

什么是通配符?

通配符用于替换字符串中的一个或多个字符。

通配符通常与LIKE、NOT LIKE操作符一起使用。LIKE操作符在WHERE子句中用于搜索列中的指定模式。

Mysql 有哪些通配符?

  • % :百分号通配符,表示匹配0个或多个字符。

  • _ :短划线通配符,表示匹配任意的一个字符。

通配符用法示例

  • 使用 % 匹配以指定值开头的
WHERE name LIKE 'a%'
  • 使用 % 匹配以指定值结尾的
WHERE name LIKE '%a'
  • 使用两个 % 匹配包含指定值的
WHERE name LIKE '%a%'
  • 例如 a%b %放在值中间,匹配以 a开头,以b结尾的
WHERE name LIKE 'a%b'
  • 例如 _ondon 可以匹配 london、aondon等
WHERE name LIKE '_ondon'
  • 例如 londo_ 可以匹配 london、londom等
WHERE name LIKE 'londo_'
  • 例如 h_t 可以匹配 hot、hat等,中间可以是任意一个字符
WHERE name LIKE 'h_t'
  • 例如 _r% 可以匹配以某某r开头的值
WHERE name LIKE '_r%'
  • 例如 a_%_% 可以匹配以a开头后面接两个任意字符的值
WHERE name LIKE 'a_%_%'
  • 例如匹配长度为5的任意字符,则使用5个 _
WHERE name LIKE '_____'
  • %_ 本身作为匹配的字符时,使用 ESCAPE 来转义处理
WHERE name LIKE '67#%%' ESCAPE '#'

此处使用 ESCAPE 语句指定 # 作为转义字符,用来转义第一个%,所以此查询可以查询 67%

既然ESCAPE可以自定义指定转义字符,那么,如下:

WHERE name LIKE '67=%%' ESCAPE '=',与上面是对等的。
  • 通过 \ 直接转义,与 ESCAPE 效果相同,例如查询包含 _ 的记录,即可以使用 ESCAPE ,也可以使用 \ 来直接转义,如下:
WHERE name LIKE '%#_%' ESCAPE '#'WHERE name LIKE '%\_%'

二、模式匹配

除了使用 LIKENOT LIKE,还可以使用 REGEXPNOT REGEXP 操作符,同时还有 RLIKENOT RLIKE ,此为 REGEXPNOT REGEXP 的同义词,两者效果相同。

模式匹配示例

  • 使用 REGEXP 匹配指定值开头的,默认不区分大小写
WHERE name REGEXP '^b'
  • 使用 REGEXP 匹配指定值开头的,且区分大小写
WHERE name REGEXP BINARY '^b'

使用BINARY关键字使其中一个字符串成为二进制字符串
  • 使用 REGEXP 匹配指定值结尾的
WHERE name REGEXP 'b$'
  • 使用 REGEXP 匹配包含指定值的
WHERE name REGEXP 'b'
  • 使用 REGEXP 匹配长度为5的值(方法一)
WHERE name REGEXP '^.....$'

. 表示匹配任意值
  • 使用 REGEXP 匹配长度为5的值(方法二)
WHERE name REGEXP '^.{5}$'

{5} 表示重复前面的值5次,此处为.即重复任意值5

相关推荐

  1. mysql 通配符模式匹配用法详解

    2024-04-05 22:36:01       14 阅读
  2. MySQL模糊查询通配符转义总结

    2024-04-05 22:36:01       37 阅读
  3. RabbitMQ通配符模式

    2024-04-05 22:36:01       14 阅读
  4. 力扣44题通配符匹配题解

    2024-04-05 22:36:01       38 阅读
  5. 力扣_字符串3—通配符匹配

    2024-04-05 22:36:01       23 阅读
  6. Shell流程if模式匹配case

    2024-04-05 22:36:01       14 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-05 22:36:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-05 22:36:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-05 22:36:01       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-05 22:36:01       20 阅读

热门阅读

  1. C++初阶:vector类的模拟实现(含模板)

    2024-04-05 22:36:01       16 阅读
  2. 竖式运算(和我那个计算器一样拉)

    2024-04-05 22:36:01       13 阅读
  3. 拿到运营商给的IP池

    2024-04-05 22:36:01       12 阅读
  4. WebKit结构简介

    2024-04-05 22:36:01       12 阅读
  5. css:阴影效果box-shadow

    2024-04-05 22:36:01       23 阅读
  6. 鸿蒙组件学习_Tabs组件

    2024-04-05 22:36:01       16 阅读
  7. 【pytest】`setup`和`teardown`

    2024-04-05 22:36:01       16 阅读
  8. 网络层面测评项

    2024-04-05 22:36:01       13 阅读