MySQL通配符與正則表達式搜過濾數(shù)據(jù)詳解
通配符過濾
通配符:用來匹配值的一部分特殊字符。
通配符可以在搜索模式中任意位置使用,并且可以使用多個通配符。
搜索模式:由字面值、通配符或者兩者組合構(gòu)成的搜索條件。
語法(使用LIKE操作符):
SELECT [column_name] FROM [table_name] WHERE [column_name] LIKE '[string]';
通配符 %
‘%’ 表示任何字符出現(xiàn)任意次數(shù),例如 LIKE ‘jet%’ 匹配詞jet起頭的值,‘%anvil%’ 匹配任何位置包含文本anvil的值。
注意:
- 根據(jù)MySQL的配置方式,搜索可以是區(qū)分大小寫的;
- ‘%’ 可以匹配0個字符;
- 值的尾空格會干擾通配符匹配,最好在搜索模式最后附加一個%;
- ‘%’ 不能匹配NULL。
通配符 _
‘_’ 只匹配單個字符。
技巧
- 不要過度使用通配符,因為這會很花時間;
- 如有必要,使用通配符匹配在搜索的最后;
正則表達式過濾
語法(使用REGEXP操作符):
SELECT [column_name] FROM [table_name] WHERE [column_name] REGEXP '[string]';
字符匹配
基本匹配:‘.’ 表示匹配任意一個字符。
正則表達式匹配不區(qū)分大小寫,使用BINARY關鍵字區(qū)分,例如WHERE prod_name REGEXP BINARY ‘JetPack .000’。
- OR匹配:‘1000|2000’ 表示匹配1000或者2000。
- 多字符匹配:‘[123]’ 表示匹配 1 或 2 或 3,是 [1|2|3] 的縮寫。
但是 ‘[1|2|3] Ton’ 和 ‘1|2|3 Ton’ 匹配結(jié)果并不相同,后者表示匹配 1 或 2 或 3 Ton。
- 否定字符匹配:‘[^123]’ 表示匹配除這些字符外的任何東西。
- 匹配范圍:‘[0-9]’ 與 ‘[0123456789]’ 相同。‘[a-z]’ 匹配任意字母字符。
- 匹配特殊字符:使用轉(zhuǎn)義字符 ‘\’,例如 ‘\.’ 、’ \|’ 、‘\[’ 、‘\’。
其他字符
空白元字符
元字符 | 說明 |
---|---|
\\f | 換頁 |
\\n | 換行 |
\\r | 回車 |
\\t | 制表 |
\\v | 縱向制表 |
字符類
類 | 說明 |
---|---|
[:alnum:] | 任意字母和數(shù)字 |
[:alpha:] | 任意字符(同[a-zA-Z]) |
[:blank:] | 空格和制表 |
[:cntrl:] | ASCII控制字符(0-31和127) |
[:digit:] | 任意數(shù)字 |
[:graph:] | 與[:print:]相同,但是不包括空格 |
[:lower:] | 任意小寫字母 |
[:print:] | 任意可打印字符 |
[:punct:] | 既不在[:alnum:]也不在[:cntrl:] 中的任意字符 |
[:space:] | 包括空格在內(nèi)的任意空白字符 |
[:upper:] | 任意大寫字符 |
[:xdigit:] | 任意十六進制數(shù)字 |
重復元字符
元字符 | 說明 |
---|---|
* | 0個或多個匹配 |
+ | 1個或多個匹配 |
? | 0個或多個匹配 |
{n} | 指定數(shù)目匹配 |
{n, } | 不少于指定數(shù)目的匹配 |
{n, m} | 匹配數(shù)目的范圍(m不超過255) |
定位元字符
元字符 | 說明 |
---|---|
^ | 文本的開始 |
$ | 文本的結(jié)尾 |
[[:<:]] | 詞的開始 |
[[:>:]] | 詞的結(jié)尾 |
舉例:
SELECT prod_name FROM products WHERE prod_name REGEXP '^[0-9\\.]';
對比
如果匹配文本在列值中出現(xiàn),則LIKE不會匹配,但是REGEXP會匹配。
可以通過用 ^ 開始每個表達式,用 $ 結(jié)束每個表達式,使得REGEXP的作用和LIKE一樣。
正則表達式測試
SELECT 'hello' REGEXP '[0-9]'; //結(jié)果返回0
總結(jié)
到此這篇關于MySQL通配符與正則表達式搜過濾數(shù)據(jù)的文章就介紹到這了,更多相關MySQL通配符與正則過濾數(shù)據(jù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
mysql 8.0.11 macos10.13安裝配置方法圖文教程
這篇文章主要為大家詳細介紹了mysql 8.0.11 macos10.13安裝配置方法圖文教程,mysql數(shù)據(jù)庫安裝及配置環(huán)境變量,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-07-07