SQL REGEXP

SQL 中的 REGEXP 运算符是一个强大的工具,用于匹配复杂的字符串模式。它用于根据特定模式而不是简单的字符匹配来提取信息。

示例

SELECT *
FROM Orders
WHERE item REGEXP 'Mouse|Keyboard';

这里,SQL 命令选择项目是 MouseKeyboard 的订单。


带有 WHERE 子句的 SQL REGEXP

REGEXP 运算符可以与 WHERE 子句有效地结合使用,以进行精确的模式匹配。例如,

SELECT *
FROM Customers
WHERE first_name REGEXP '^J';

这里,SQL 命令返回名字以 J 开头的客户。

注意: 我们的在线编译器基于 SQLite,默认不支持 REGEXP 运算符。


UPDATE 语句中的 REGEXP

REGEXP 运算符也可以用于 UPDATE 语句,以根据复杂模式修改数据。例如,

UPDATE Shippings
SET status = 'Processing'
WHERE status REGEXP 'Pending|Delivered';

SELECT * FROM Shippings;

此 SQL 命令将 Shippings 表中状态为 PendingDelivered 的发货的 status 列更新为 Processing


链式 REGEXP 运算符

可以链式使用多个 REGEXP 运算符进行复杂模式匹配。例如,

SELECT *
FROM Customers
WHERE country
REGEXP 'USA|UK' AND age REGEXP '2[0-9]';

此查询查找来自 USAUK 且年龄在二十多岁的客户。


使用 SQL REGEXP 验证电子邮件地址

使用 SQL 的 REGEXP 运算符,我们可以根据标准电子邮件格式规则验证电子邮件地址。

让我们看一个例子。

SELECT * FROM Customers
WHERE email
REGEXP '^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$';

这里的 REGEXP 模式分解如下

  • ^[A-Za-z0-9._%+-]+ - 电子邮件必须以一个或多个字母数字字符、点、下划线、百分号、加号或连字符开头。
  • @ - 这是电子邮件地址中强制性的 at 符号。
  • [A-Za-z0-9.-]+ - 在 at 符号之后,电子邮件必须包含一个或多个字母数字字符、点或连字符。
  • \.[A-Za-z]{2,4}$ - 电子邮件必须以一个句点结尾,后跟 24 个字母字符,表示域名部分。
你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战