MySQL 支援另一種基於正規表示式和 REGEXP 運算子的模式比對運算。以下是模式表,可以與REGEXP運算子一起使用來處理模式相符。
圖案 | #圖案符合什麼 |
^ | #字串開頭 |
p> | #字串結尾|
#任何單一字元 | |
方括號之間列出的任何字元 | |
方括號內未列出的任何字元 | |
交替;符合任何模式p1、p2 或p3 | |
#前面元素的零個或多個實例 | |
前一個元素的一個或多個實例 | |
前一個元素的n 個實例 | |
m 到前面元素的n 個實例 |
mysql> Select * from Student_info; +------+---------+------------+------------+ | id | Name | Address | Subject | +------+---------+------------+------------+ | 101 | YashPal | Amritsar | History | | 105 | Gaurav | Chandigarh | Literature | | 130 | Ram | Jhansi | Computers | | 132 | Shyam | Chandigarh | Economics | | 133 | Mohan | Delhi | Computers | +------+---------+------------+------------+ 5 rows in set (0.00 sec)現在,以下是一些使用REGEXP 從上表中尋找「Name」模式的查詢-
mysql> Select Name from student_info WHERE Name REGEXP '^Y'; +---------+ | Name | +---------+ | YashPal | +---------+ 1 row in set (0.11 sec)
上面的查詢將找到所有以「Y」開頭的名稱。
mysql> Select name from student_info WHERE Name REGEXP 'am$'; +-------+ | name | +-------+ | Ram | | Shyam | +-------+ 2 rows in set (0.00 sec)
上面的查詢將會找到所有以「am」結尾的名稱。
mysql> Select name from student_info WHERE Name REGEXP 'av'; +--------+ | name | +--------+ | Gaurav | +--------+ 1 row in set (0.00 sec)
上面的查詢將找到所有包含「av」的名稱。
mysql> Select name from student_info WHERE Name REGEXP '^[aeiou]|am$'; +-------+ | name | +-------+ | Ram | | Shyam | +-------+ 2 rows in set (0.00 sec)
以上查詢將會尋找所有以母音開頭並以「am」結尾的名稱。
以上是什麼是 MySQL REGEXP 運算子以及它如何處理模式匹配?的詳細內容。更多資訊請關注PHP中文網其他相關文章!