Mysq中模式匹配

模式匹配是數據庫的一項標準化功能,一般的數據庫都會提供兩個模式檢索符號_和%,已經模式檢索關鍵字like、not like。

_代表匹配單個字符,而%表示匹配0到多個字符。like表示包含,而not like表示不包含。

除了標準的模式匹配外,Mysql還提供了模式匹配的拓展——正則匹配。

創建一張學生表

CREATE TABLE `student` (
  `name` char(30) default NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
表中的記錄如下

name
張三
李四
張三丰
王五
吳五

正則匹配相關的關鍵字是rlike和not rlike,正則式中支持了一些拓展的匹配符:

1.ab:表示字符a且字符b,即串'ab'

2.點號.:表示匹配任意的單個字符

找出姓名中姓張的人名

select * from student where name rlike '張.';

需要注意的是.只管匹配一個字符,而不理會該字符後面是否還有字符,輸出結果如下

name
張三
張三丰

3.-:表示一個聯繫區間a-z表示所有小寫字母,0-9表示所有數字

4.[]:表示取其中的一個字符,[a-z]表示取小寫字母中的一個,[ab]表示取字符a或者字符b

5.*:用來表示數量,0個或者多個,[a-z]*表示多個字符

6.^:表示開頭匹配

查找姓名中以張開頭的

select * from student where name rlike '^張';
輸出結果

name
張三
張三丰

7.&:表示結尾匹配

查找姓名中以五結尾的

select * from student where name rlike '五$';
輸出結果

name
王五
吳五



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章