国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

MYSQL使用正則表達式過濾數據

2024-07-24 13:09:19
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了MYSQL使用正則表達式過濾數據的相關資料,感興趣的小伙伴們可以參考一下
 

一、正則與LIKE的區別
 Mysql的正則表達式僅僅使SQL語言的一個子集,可以匹配基本的字符、字符串。
例如:select * from wp_posts where post_name REGEXP'hello',可以檢索出列post_name中所有包含hello的行

REGEXP'.og' .是正則表達式中里一個特殊的字符。它表示匹配一個字符,因此,dog,hog,mog等等都能匹配。

注意:

關于LIKE和REGEXP的區別:LIKE匹配整個列。如果被匹配的文本僅在列值中出現,LIKE并不會找到它,相應的行也不會返回(當然,使用通配符除外)。而REGEXP在列值內進行匹配,如果被匹配的匹配的文本在列值中出現,REGEXP將會找到它,相應的行將被返回,這時一個非常重要的差別(當然,如果適應定位符號^和$,可以實現REGEXP匹配整個列而不是列的子集)。

關于大小寫的區分:MySQL中正則表達式匹配(從版本3.23.4后)不區分大小寫。如果要區分大小寫,應該使用BINARY關鍵字,如where post_name REGEXP BINARY 'Hello.000'

二、基本字符匹配
檢索列prod_name 包含文本1000的所有行:

MYSQL,正則表達式,過濾數據

進行OR匹配
相當于:或操作 “|”

MYSQL,正則表達式,過濾數據

匹配幾個字符之一
只想匹配特定的字符。 可以通過指定一組用[]括起來的字符來完成。

MYSQL,正則表達式,過濾數據

[456]定義了一組字符,他的意思是匹配4或5或6. []是另一種形式的OR語句。[456][4|5|6]的縮寫。匹配范圍
[1-3] a-z都是合法的范圍

MYSQL,正則表達式,過濾數據

匹配特殊字符

正則表達式語言由特殊含義的特殊字符構成。

. 在正則表達式中表示匹配任何一個字符

比如匹配prod_name中包括on字符串的行:

MYSQL,正則表達式,過濾數據

那如何匹配.,[],|,-

為了匹配特殊字符,必須用//為前導。 比如//.表示查找·

匹配字符類

MYSQL,正則表達式,過濾數據

匹配多個實例

MYSQL,正則表達式,過濾數據

MYSQL,正則表達式,過濾數據

再比如 匹配連在一起的4位數字

sticks? : s后的使s可選,因為匹配它前面緊跟的任何字符的0次或者1次出現。

MYSQL,正則表達式,過濾數據

[:digit:]匹配任意數字,因而它為數字的一個集合。{4}確切地要求它前面的字符出現4次。
所以[:digit:]{4}匹配連在一起的任意4位數字。

MYSQL,正則表達式,過濾數據

三、定位符
目前為止所有例子都是匹配一個串中任意為止的文本。為了匹配特定為止的文本,需要使用定位符。

MYSQL,正則表達式,過濾數據

MYSQL,正則表達式,過濾數據

也可以在不使用數據庫的情況下測試正則表達式的正確性:

SELECT 來測試正則表達式,REGEXP檢查總是返回0或1,

SELECT  'HELLO‘  REGEXP '0‘//返回為0

以上就是本文的全部內容,希望對大家的學習有所幫助。



注:相關教程知識閱讀請移步到MYSQL教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 尼勒克县| 秦安县| 盐池县| 明溪县| 山丹县| 荆门市| 鹤山市| 河曲县| 太康县| 靖远县| 凌云县| 黄陵县| 武川县| 海门市| 营口市| 鄂托克前旗| 资溪县| 海安县| 边坝县| 襄樊市| 安多县| 内丘县| 望谟县| 河西区| 西华县| 固始县| 安化县| 正宁县| 巴彦淖尔市| 勐海县| 北碚区| 公主岭市| 泸水县| 米林县| 高雄县| 剑川县| 敖汉旗| 平江县| 武穴市| 陇南市| 黔东|