2026-02-04 09:17:20
MySQL正则表达式通过REGEXP操作符实现模式匹配,支持多种元字符和高级功能。以下是详细使用指南:
一、基础用法语法结构:
SELECT 字段名 FROM 表名 WHERE 字段名 REGEXP '正则模式';常用元字符示例:
锚点匹配
^a:匹配以"a"开头的字符串
SELECT name FROM users WHERE name REGEXP '^a';z$:匹配以"z"结尾的字符串
数量词
a{2,4}:匹配2到4个连续"a"
SELECT product_code FROM items WHERE product_code REGEXP 'x{3}';字符类
[0-9]:匹配任意数字
[^abc]:匹配非"a/b/c"的字符
分组与逻辑
(apple|orange):匹配"apple"或"orange"
SELECT description FROM products WHERE description REGEXP '(red|blue)';特殊字符转义
.:匹配实际点号(需用反斜杠转义)
正则函数(MySQL 8.0+)
REGEXP_LIKE():替代REGEXP操作符
SELECT email FROM customers WHERE REGEXP_LIKE(email, '@gmail.com$');REGEXP_REPLACE():替换匹配内容
UPDATE logs SET message = REGEXP_REPLACE(message, '[0-9]{4}-[0-9]{2}-[0-9]{2}', 'DATE');通过合理组合这些模式,可以高效实现数据验证、模糊查询等复杂匹配需求。