SQL 学习笔记:正则表达式 REGEXP(正则)
一、正则 语法
-- MySQL
SELECT * FROM t WHERE col REGEXP '^A[0-9]+$';
-- Oracle
SELECT * FROM t WHERE REGEXP_LIKE(col, '^A[0-9]+$');二、参数说明
| 项目 | 说明 |
|---|---|
REGEXP | MySQL 正则匹配(同义词 RLIKE) |
REGEXP_LIKE | Oracle 正则函数:REGEXP_LIKE(col, pat) |
正则元字符 | ^ 开头 $ 结尾 [] 字符集 + * ? 量词 |
否定 | MySQL: col NOT REGEXP ...;Oracle: NOT REGEXP_LIKE(...) |
三、注意事项
- MySQL 用 REGEXP / RLIKE 运算符;Oracle 用 REGEXP_LIKE 函数,写法不同
- 两边正则语法基本兼容(POSIX/PCRE 风格略有差异)
- 正则比 LIKE 灵活,但大表无函数索引时性能较差
四、经典案例
案例1:MySQL 正则
案例2:Oracle 正则
案例3:否定匹配
五、小结
正则表达式 REGEXP是数据库操作中的基础而关键的用法,建议结合文中的示例表在 Oracle 与 MySQL 中分别动手验证,注意两者在自增、分页、正则等处的语法差异,做到融会贯通。
评论(0)
请登录后发表评论。