正则关键字 |
说明 |
REGEXP |
字符串是否与正则表达式匹配 |
RLIKE |
字符串是否与正则表达式匹配 |
NOT REGEXP |
正则表达式的否定 |
NOT LIKE |
正则表达式的否定 |
- MySQL中使用 REGEXP / RLIKE 关键字指定正则表达式的字符匹配模式。下表列出了REGEXP操作符中常用字符匹配列表
- MySQL中的 REGEXP 和 RLIKE 关键字属于同义词,功能相同
语法
exp REGEXP pat
exp RLIKE pat
参数 |
说明 |
|||||||||||||||||||||||||||||||||||||||
exp |
匹配的字符 |
|||||||||||||||||||||||||||||||||||||||
pat |
字符匹配模式,以下模式
|
示例
#查找name字段中包含 'ma' 字符串的所有数据
SELECT name
FROM person_tbl
WHERE name REGEXP 'ma';
SELECT name
FROM person_tbl
WHERE name LIKE 'ma';
示例
#查找name字段中以 ‘s’ 开头的的所有数据
SELECT name
FROM person_tbl
WHERE name REGEXP '^st';
SELECT name
FROM person_tbl
WHERE name LIKE '^st';
示例
#查找name字段中以 'ok' 为结尾的所有数据
SELECT name
FROM person_tbl
WHERE name REGEXP 'ok$';
SELECT name
FROM person_tbl
WHERE name LIKE 'ok$';
反向正则匹配(NOT REGEXP / NOT RLIKE)
- NOT RLIKE / NOT REGEXP 关键字与 REGEXP / RLIKE 相反,用于搜索字段中与正则相反匹配的内容
语法
exp NOT REGEXP pat
exp NOT RLIKE pat
示例
#查找name字段中不包含 'ma' 字符串的所有数据
SELECT name
FROM person_tbl
WHERE name NOT REGEXP 'ma';
SELECT name
FROM person_tbl
WHERE name NOT LIKE 'ma';