正規表示式是用來匹配文字的特殊的字串,是一種特殊的語言。在sql中使用正規表示式可以快速將乙個模式與乙個文字串進行比較,完成文字的匹配。這裡僅總結常使用的正規表示式。
1.mysql使用正規表示式的基本語法
從乙個簡單的例子開始,檢索,檢索列n_name包含文字100的所有行,語法如下:
舉例:select n_name from product where n_name regexp 『100』 order by n_name;
上述語法可以看出,sql語法中,使用使用正規表示式,關鍵字為」regexp」,它的作用可以類別」like」。
2.正規表示式常用萬用字元
(1)匹配任意乙個字元「.」
舉例:select n_name from product where n_name regexp 『.00』 order by n_name;
「.」代表可以匹配任意乙個字元,因此帶有100,200,300,或者x00的文字行都會被篩選出來
(2)或者匹配「|」
舉例:select n_name from product where n_name regexp 『100|200』 order by n_name;
「|」即為日常邏輯的「或」關係,如果文字行中,存在100,或者200,這些文字都會被篩選出來
(3)匹配幾個字元之一「」
舉例:select n_name from product where n_name regexp 『[123]ame』 order by n_name;
「」表示匹配內的字元之一,這裡的語法會返回符合1ame,2ame,3ame字串的文字行,其實「[123]」可以理解為是「1|2|3」的替代版;但是如果將「[123]ame」換成上述的語法,就會變成「1ame|2ame|3ame」,實際上語法會變得很長
(4)匹配一定的範圍「,-」
舉例:select n_name from product where n_name regexp 『[1-9]ame』 order by n_name;
「[1-9]」顯示了乙個完整功能的範圍,可以理解為[123456789],範圍不一定顯示的是數字範圍,也可以是字母範圍,比如[a-z],起使點和結束點也不一定從1或開始,比如[6-8],[c-h]也是可以的。這時返回的文字行可能為1ame,2ame,3ame,4ame,5ame,6ame,7ame,8ame,9ame
(5)匹配特殊字元「\」
舉例:select n_name from product where n_name regexp 『\.』 order by n_name;
「\」用來篩選匹配特殊的字元,例如上述語法中「.」代表所有字元,如果想獲取「.」字元,就需要加「\」來篩選出含有「.」的文字行
相關的特殊字元行還有:\f對應換頁;\n對應換行;\r對應回車;\t對應製表;\v對應縱向製表
(6)一次或0次「?」
舉例:select n_name from product where n_name regexp 『ame?r』 order by n_name;
「?」代表「?」前方的字元是出現一次或0次,即使得e可選,e可以有,也可以沒有,因此可能包含的篩選出的文字行有amer,amr
(7)匹配任意次「{}」
舉例:select n_name from product where n_name regexp 『[[12]]』 order by n_name;
「{}」內填寫的數字,要求前方的字元要出現{}內數字的次數才可以,上述的文字行要求出現3次前方的文字行,即包含111,112,121,211,212,222的文字行都可被篩選出來。
(8)定位符「^」
舉例:select n_name from product where n_name regexp 『1
ame』 order by n_name;
「^」顯示特殊位置的文字,這裡顯示要檢索出乙個數字或者「.」開始的名稱,定位符的篩選結果為包含.ame,1ame,2ame,3ame的文字
同時「^」也在集合中用來否定集合,集合中「(用[和]定義)」這種關係,如果不是否定關係,就是用來指定字串的開始處。
1-3\. ↩︎
mysql正規表示式 MySQL正規表示式
正規表示式是為複雜搜尋指定模式的強大方式。正規表示式描述了一組字串。最簡單的正規表示式是不含任何特殊字元的正規表示式。例如,正規表示式hello匹配hello。非平凡的正規表示式採用了特殊的特定結構,從而使得它們能夠與1個以上的字串匹配。例如,正規表示式hello word匹配字串hello或字串w...
MySql 使用正規表示式
mysql 用where 子句對正規表示式提供了支援,允許你指定正規表示式,注意mysql僅支援多數正規表示式實現的乙個很小的子集。select prod name from products where prod name regexp 1000 mysql 中正規表示式匹配不區分大小寫,為區分大...
mysql 正規表示式
已知mysql可以通過 like 來進行模糊匹配。mysql 同樣也支援其他正規表示式的匹配,mysql中使用 regexp 操作符來進行正規表示式匹配。例項 查詢name欄位中以 st 為開頭的所有資料 mysql select name from person tbl where name re...