《MYSQL數據庫MYSQL使用正則表達式過濾數據》要點:
本文介紹了MYSQL數據庫MYSQL使用正則表達式過濾數據,希望對您有用。如果有疑問,可以聯系我們。
一、正則與LIKE的區別
?Mysql的正則表達式僅僅使SQL語言的一個子集,可以匹配基本的字符、字符串.
例如:select * from wp_posts where post_name REGEXP'hello',可以檢索出列post_name中所有包含hello的行
MYSQL教程
REGEXP'.og'?.是正則表達式中里一個特殊的字符.它表示匹配一個字符,因此,dog,hog,mog等等都能匹配.
MYSQL教程
注意:
MYSQL教程
關于LIKE和REGEXP的區別:LIKE匹配整個列.如果被匹配的文本僅在列值中出現,LIKE并不會找到它,相應的行也不會返回(當然,使用通配符除外).而REGEXP在列值內進行匹配,如果被匹配的匹配的文本在列值中出現,REGEXP將會找到它,相應的行將被返回,這時一個非常重要的差別(當然,如果適應定位符號^和$,可以實現REGEXP匹配整個列而不是列的子集).
MYSQL教程
關于大小寫的區分:MySQL中正則表達式匹配(從版本3.23.4后)不區分大小寫.如果要區分大小寫,應該使用BINARY關鍵字,如where post_name REGEXP BINARY 'Hello.000'
MYSQL教程
二、基本字符匹配
檢索列prod_name 包含文本1000的所有行:MYSQL教程
MYSQL教程
進行OR匹配
相當于:或操作 “|”MYSQL教程
MYSQL教程
匹配幾個字符之一
只想匹配特定的字符. 可以通過指定一組用[
和]
括起來的字符來完成.MYSQL教程
MYSQL教程
[456]
定義了一組字符,他的意思是匹配4或5或6. []
是另一種形式的OR語句.[456]
是[4|5|6]
的縮寫.匹配范圍[1-3]
a-z
都是合法的范圍MYSQL教程
MYSQL教程
匹配特殊字符
MYSQL教程
正則表達式語言由特殊含義的特殊字符構成.MYSQL教程
.
在正則表達式中表示匹配任何一個字符MYSQL教程
比如匹配prod_name中包括on
字符串的行:
MYSQL教程
MYSQL教程
那如何匹配.
,[]
,|
,-
?MYSQL教程
為了匹配特殊字符,必須用\\
為前導. 比如\\.
表示查找?
MYSQL教程
匹配字符類MYSQL教程
MYSQL教程
匹配多個實例MYSQL教程
MYSQL教程
MYSQL教程
再比如 匹配連在一起的4位數字:MYSQL教程
sticks?
: s
后的?
使s可選,因為?
匹配它前面緊跟的任何字符的0次或者1次出現.MYSQL教程
MYSQL教程
[:digit:]
匹配任意數字,因而它為數字的一個集合.{4}
確切地要求它前面的字符出現4次.
所以[:digit:]{4}
匹配連在一起的任意4位數字.MYSQL教程
MYSQL教程
三、定位符
目前為止所有例子都是匹配一個串中任意為止的文本.為了匹配特定為止的文本,需要使用定位符.MYSQL教程
MYSQL教程
MYSQL教程
也可以在不使用數據庫的情況下測試正則表達式的正確性:MYSQL教程
SELECT 來測試正則表達式,REGEXP檢查總是返回0或1,MYSQL教程
SELECT? 'HELLO‘? REGEXP '0‘//返回為0MYSQL教程
以上就是本文的全部內容,希望對大家的學習有所幫助.
MYSQL教程
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/1030.html