MySQL正則表達式
在前麵我們已經看到了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$';