- MySQLi 教程
- MySQLi - 首頁
- MySQLi - 簡介
- MySQLi - PHP 語法
- MySQLi - 連線
- MySQLi - 建立資料庫
- MySQLi - 刪除資料庫
- MySQLi - 選擇資料庫
- MySQLi - 建立表
- MySQLi - 刪除表
- MySQLi - 插入查詢
- MySQLi - 選擇查詢
- MySQLi - WHERE 子句
- MySQLi - 更新查詢
- MySQLi - 刪除查詢
- MySQLi - LIKE 子句
- MySQLi - 排序結果
- MySQLi - 使用 JOIN
- MySQLi - 處理 NULL 值
- 獲取和使用 MySQLi 元資料
- MySQL
- MySQL - 安裝
- MySQL - 管理
- MySQL - 資料型別
- MySQL - 正則表示式
- MySQL - 事務
- MySQL - ALTER 命令
- MySQL - 索引
- MySQL - 臨時表
- MySQL - 克隆表
- MySQL - 使用序列
- MySQL - 處理重複項
- MySQLi 有用資源
- MySQLi - 有用函式
- MySQLi - 快速指南
- MySQLi - 有用資源
- MySQLi - 討論
MySQLi - 正則表示式
您已經瞭解了使用LIKE ...%進行 MySQL 模式匹配。MySQL 支援另一種基於正則表示式和REGEXP運算子的模式匹配操作。如果您熟悉 PHP 或 PERL,那麼您很容易理解,因為這種匹配與那些指令碼語言的正則表示式非常相似。
以下是可與REGEXP運算子一起使用的模式表。
| 模式 | 模式匹配的內容 |
|---|---|
| ^ | 字串開頭 |
| $ | 字串結尾 |
| . | 任何單個字元 |
| [...] | 方括號之間列出的任何字元 |
| [^...] | 方括號之間未列出的任何字元 |
| p1|p2|p3 | 選擇;匹配任何模式 p1、p2 或 p3 |
| * | 前一個元素的零個或多個例項 |
| + | 前一個元素的一個或多個例項 |
| {n} | 前一個元素的 n 個例項 |
| {m,n} | 前一個元素的 m 到 n 個例項 |
示例
現在,基於上表,您可以設計各種型別的 SQL 查詢來滿足您的需求。在這裡,我列出了一些供您理解。假設我們有一個名為 tutorials_inf 的表,它有一個名為 name 的欄位 -
查詢所有以 'sa' 開頭的名稱的查詢
mysql> SELECT * FROM tutorials_inf WHERE name REGEXP '^sa';
示例輸出應如下所示 -
+----+------+ | id | name | +----+------+ | 1 | sai | +----+------+ 1 row in set (0.00 sec)
查詢所有以 'ai' 結尾的名稱的查詢
mysql> SELECT * FROM tutorials_inf WHERE name REGEXP 'ai$';
示例輸出應如下所示 -
+----+------+ | id | name | +----+------+ | 1 | sai | +----+------+ 1 row in set (0.00 sec)
查詢所有包含 'a' 的名稱的查詢
mysql> SELECT * FROM tutorials_inf WHERE name REGEXP 'a';
示例輸出應如下所示 -
+----+-------+ | id | name | +----+-------+ | 1 | sai | | 3 | ram | | 4 | johar | +----+-------+ 3 rows in set (0.00 sec)
查詢所有以母音開頭的名稱的查詢
mysql> SELECT * FROM tutorials_inf WHERE name REGEXP '^[aeiou]';
廣告