解析MySQl中的模糊匹配

1、普通匹配??????
?
?“_”匹配任何單個字符

“%”匹配任意數目字符(包括零個字符)。

???例1:為了找出以“b”開頭的名字:
??????? select?*?from?pet?where?name?like?“b%”;
?
???例2:為了找出包含一個“w”的名字:
??????? select?*?from?pet?where?name?like?“%w%”;?
?
???例3:為了找出包含正好5個字符的名字
???????? select?*?from?pet?where?name?like?“_”;?

2、正則正則匹配
?
???對這類模式進行匹配測試時,使用regexp和not?regexp操作(或rlike和not?rlike,它們是同義詞)。

“.”?? 匹配任何單個的字符。?

“[…]”匹配在方括號內的任何字符。

?????? 例1:“[abc]”匹配“a”、“b”或 “c”。?

“-”為了命名字符的一個范圍。

????? 例2:“[a-z]”匹配任何小寫字母,而“[0-9]”匹配任何數字。?

“?*?”匹配零個或多個在它前面的東西。

?? 例3:“x*”匹配任何數量的“x”字符,“[0-9]*”匹配的任何數量的數字,而“.*”匹配任何數量的任何東西。

正則表達式區分大小寫,但是如果你希望,你能使用一個正則匹配兩種寫法。

???例4,“[aa]”匹配小寫或大寫的“a”而“[a-za-z]”匹配兩種寫法的任何字母。??

為了定位一個模式以便它必須匹配被測試值的開始或結尾,在模式開始處使用“^”或在模式的結尾用“$”。?

????? 例5:為了找出以“b”開頭的名字
??????????? select?*?from?pet?where?name?regexp?“^[bb]”;?
????? 例6:為了找出以“fy”結尾的名字
??????????? select?*?from?pet?where?name?regexp?“fy$”;?
?

? 版權聲明
THE END
喜歡就支持一下吧
點贊5 分享