由mysql提供的模式匹配的其他型別是使用擴充套件正規表示式。
當你對這類模式進行匹配測試時,使用regexp和not regexp操作符(或rlike和not rlike,它們是同義詞)。
擴充套件正規表示式的一些字元是:
「.」匹配任何單個的字元。
乙個字元類「[...]」匹配在方括號內的任何字元。例如,「[abc]」匹配「a」、「b」或「c」。為了命名字元的乙個範圍,使用乙個「-」。「[a-z]」匹配任何小寫字母,而「[0-9]」匹配任何數字。
「 * 」匹配零個或多個在它前面的東西。例如,「x*」匹配任何數量的「x」字元,「[0-9]*」匹配的任何數量的數字,而「.*」匹配任何數量的任何東西。
正規表示式是區分大小寫的,但是如果你希望,你能使用乙個字元類匹配兩種寫法。例如,「[aa]」匹配小寫或大寫的「a」而「[a-za-z]」匹配兩種寫法的任何字母。
如果它出現在被測試值的任何地方,模式就匹配(只要他們匹配整個值,sql模式匹配)。
為了定位乙個模式以便它必須匹配被測試值的開始或結尾,在模式開始處使用「^」或在模式的結尾用「$」。
為了說明擴充套件正規表示式如何工作,上面所示的like查詢在下面使用regexp重寫:
為了找出以「b」開頭的名字,使用「^」匹配名字的開始並且「[bb]」匹配小寫或大寫的「b」:
mysql> select * from pet where name regexp "^[bb]";
自己在myabtis中使用正規表示式
select
code,label
from institution
where admlvl = '2' and
code regexp "[0-9]*\.[0-9]*"
select
code,label
from institution
where admlvl = '3' and code regexp "[0-9]*\.[0-9]*\.[0-9]*"
select
code,label
from institution
where admlvl = '4' and code regexp "[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*";
sql正規表示式 SQL中的正規表示式
sql正規表示式 sql中的正規表示式 sql的查詢語句中,有時會需要引進正規表示式為其複雜搜尋指定模式。下面給出一些 regexp 在mysql 語句中應用 非全部 1 匹配字串的開始部分。mysql select fo nfo regexp fo 0mysql select fofo regex...
SQL正規表示式
當我們要進行一些簡單的糊塗查詢時用百分號 萬用字元 就可以了.其中 表達任意長度的字串,表示任意的某乙個字元.比如select from emp where ename like s or ename like s 但如果在一些複雜的查詢中關用這兩個符號sql語句就會非常複雜,而且也不一定能實現.從...
SQL正規表示式
例子 1 查詢名字包含 天 字的人的資訊 select from user where user name like 天 等同於 select from user where user name regexp 天 2 查詢user表中,姓名最後乙個字是 宇 的人的資訊 select from use...