发布于 2015-07-31 16:30:02 | 303 次阅读 | 评论: 0 | 来源: 网络整理
在前面我们已经看到了MySQL的模式匹配:LIKE ...%。 MySQL支持另一种类型的模式匹配的操作基于正则表达式和正则表达式运算符。如果知道PHP或Perl,那么它是非常简单的,因为这匹配非常相似于脚本正则表达式。
以下是模式的表格,其可以连同REGEXP运算符使用。
模式 | 什么样的模式匹配 |
---|---|
^ | 开始的一个字符串 |
$ | 结束的一个字符串 |
. | 任意单个字符 |
[...] | 方括号中列出的任何字符 |
[^...] | 任何字符方括号之间不会被列出 |
p1|p2|p3 | 交替;匹配的任何模式 p1, p2, 或 p3 |
* | 前一个元素的零个或多个实例 |
+ | 前面元素的一或多个实例 |
{n} | 前一个元素的n个实例 |
{m,n} | 前一个元素的 m 到 n 个实例 |
现在根据上面的表格,可以在不同的设备类型用SQL查询来满足要求。在这里,列出一些的理解。考虑有一个表称为 person_tbl,它是有一个 name 字段:
查询查找所有以 “st” 开头的名字:
mysql> SELECT name FROM person_tbl WHERE name REGEXP '^st';
查询找到所有以 'ok' 结尾的名字
mysql> SELECT name FROM person_tbl WHERE name REGEXP 'ok$';
查询查找其中包含 'mar' 所有的名字
mysql> SELECT name FROM person_tbl WHERE name REGEXP 'mar';
查询查找以元音 'ok' 结尾的所有名称
mysql> SELECT name FROM person_tbl WHERE name REGEXP '^[aeiou]|ok$';