REGEXP Operator | REGEXP 运算符 | MySQL

REGEXP的使用

以下两个代码的运行结果一致

代码一

SELECT *
FROM customers
WHERE last_name LIKE '%field%'

代码二

SELECT *
FROM customers
WHERE last_name REGEXP 'field'

结果

在这里插入图片描述

案例一

WHERE last_name REGEXP '^field'

意味着姓氏必须以field开头
结果
在这里插入图片描述

案例二

WHERE last_name REGEXP 'field$'

意味着姓氏必须以field结尾
结果
在这里插入图片描述

案例三

SELECT *
FROM customers
WHERE last_name REGEXP 'field|mac'

结果
在这里插入图片描述

案例四

SELECT *
FROM customers
WHERE last_name REGEXP 'field|mac|rose'

结果
在这里插入图片描述

案例五

SELECT *
FROM customers
WHERE last_name REGEXP '^field|mac|rose'

结果
在这里插入图片描述

所以该模式表示,查询姓氏以field开头的,或者包含mac或者rose的

案例六

举一反三

SELECT *
FROM customers
WHERE last_name REGEXP 'field$|mac|rose'

结果
在这里插入图片描述

案例七

寻找姓氏里有“e”的顾客

SELECT *
FROM customers
WHERE last_name REGEXP 'e'

在这里插入图片描述

案例八

寻找姓氏里有“e”的顾客,并且"e"前是“g”或者“i"或者"m"
即查找含有"ge"或"ie"或"me"
(同理 也可以将”[ ]“放在"e"的后面,查询"eg"或"“”")

SELECT *
FROM customers
WHERE last_name REGEXP '[gim]e'

结果
在这里插入图片描述

案例九

下述代码返回内容一致

代码一

SELECT *
FROM customers
WHERE last_name REGEXP '[abcdefg]e'

结果
在这里插入图片描述

代码二

SELECT *
FROM customers
WHERE last_name REGEXP '[a-h]e'

结果
在这里插入图片描述

注意:此时"[ ]"内的h是不好含在里面的

小结

  • “^”表示字符串的开头
  • “$”表示字符串的结尾
  • "|"代表逻辑上的or,可用于表示多个搜索模式
  • "[abcd]"用于匹配任意在括号里列举的单字符
  • "[a-x]"用于匹配a-(x-1)的字符

练习

查询符合以下条件的客户

  1. 名(first name)是 ELKA or AMBUR
  2. 姓(last name)以 EY or ON 结尾
  3. 姓以 MY 开始或 包含 SE
  4. 姓 包含 BR 或 BU

题目一

SELECT *
FROM customers
WHERE first_name REGEXP 'ELKA|AMBUR'

结果
在这里插入图片描述

题目二

SELECT *
FROM customers
WHERE last_name REGEXP 'EY$|ON$'

结果
在这里插入图片描述

题目三

SELECT *
FROM customers
WHERE last_name REGEXP '^MY|SE'

结果
在这里插入图片描述

题目四

方法一:

SELECT *
FROM customers
WHERE last_name REGEXP 'BR|BU'

方法二

SELECT *
FROM customers
WHERE last_name REGEXP 'B[RU]'

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值