mysql8.0 正值表达式Regular expressions ( classicmodels_NO 5)

举报
小Tomkk 发表于 2024/03/01 18:54:40 2024/03/01
【摘要】 mysql8.0 正值表达式Regular expressions

mysql8.0  正值表达式Regular expressions

准备工作,可以去下载 classicmodels 数据库资源如下
[ 点击:classicmodels]


也可以去附件资源下载

# 前言

今天看到一个网站 在正值表达式  我今天分享给大写 ,都是 和 正值表达式有关
以下是一些介绍正值表达式,

NOT REGEXP--------    REGEXP 的否定
REGEXP    --------字符串是否匹配正则表达式
REGEXP_INSTR()--------    匹配正则表达式的子串的起始索引
REGEXP_LIKE()    --------字符串是否匹配正则表达式
REGEXP_REPLACE()--------    替换匹配正则表达式的子字符串
REGEXP_SUBSTR()    --------返回匹配正则表达式的子串
RLIKE    --------字符串是否匹配正则表达式

正则表达式是指定复杂搜索模式的有效方法。可用于正则表达式匹配的函数和运算符,并通过示例说明可用于正则表达式操作的一些特殊字符和结构。

MySQL 使用 International Components for Unicode (ICU) 实现正则表达式支持,它提供完整的 Unicode 支持并且是多字节安全的。 (在 MySQL 8.0.4 之前,MySQL 使用 Henry Spencer 的正则表达式实现,该实现以字节方式操作,并且不是多字节安全的。有关使用正则表达式的应用程序可能受到实现更改影响的方式的信息,请参阅正则表达式兼容性注意事项。)

在 MySQL 8.0.22 之前,可以在这些函数中使用二进制字符串参数,但它们会产生不一致的结果。在 MySQL 8.0.22 及更高版本中,使用任何 MySQL 正则表达式函数都会拒绝使用二进制字符串 ER_CHARACTER_SET_MISMATCH。

---


# 一、查文档

还是可以去mysql 官网查文档的  [正值表达式Regular expressions](https://dev.mysql.com/doc/refman/8.0/en/regexp.html)


# 二、一些示例参考
查找包含名称 'Ford' 的产品。

SELECT * FROM Products WHERE LOWER(productName) REGEXP 'Ford';


列出以 'ship' 结尾的产品。

SELECT * FROM Products WHERE LOWER(productName0 REGEXP 'ship$';

报告在丹麦、挪威和瑞典的客户数量。

SELECT country, COUNT(*) FROM Customers
WHERE country REGEXP 'Denmark|Norway|Sweden'
GROUP BY country;'


哪些产品的产品代码在 S700_1000 到 S700_1499 的范围内?

SELECT * FROM Products WHERE productCode REGEXP 'S700_1[0-4][0-9]{2}';

哪些客户的姓名中包含数字?

SELECT * FROM Customers WHERE customerName REGEXP '[0-9]';

列出名为 Dianne 或 Diane 的员工的姓名。

SELECT * FROM Employees WHERE firstName REGEXP 'Dian';

列出产品名称中包含 'ship' 或 'boat' 的产品。

SELECT * FROM Products WHERE LOWER(productName) REGEXP 'ship|boat';

列出产品代码以 S700 开头的产品。

SELECT * FROM Products WHERE productCode REGEXP '^S700' ;

列出名为 Larry 或 Barry 的员工的姓名。

SELECT * FROM Employees WHERE firstName REGEXP '[BL]array';

列出姓名中包含非字母字符的员工的姓名。

SELECT * FROM Employees WHERE LOWER(firstName ) REGEXP '[^a-z]';

列出名称以 'Diecast' 结尾的供应商。

SELECT DISTINCT(productVendor) FROM Products WHERE LOWER(productVendor) REGEXP 'diecast$';


# 三、然后问题来了? 正值表达式 执行效率快吗?
这个是 chat GPT,答案共参考


# 总结
`好了,今天就说到这里,其实很多场景还是需要的正值表达式 的 如 email 验证,信用卡验证,身份证验证,
最后需要大家点赞收藏,一键3连

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。