時間:2022-10-02來源:www.ship-models.net作者:電腦系統城
通配符:用來匹配值的一部分特殊字符。
通配符可以在搜索模式中任意位置使用,并且可以使用多個通配符。
搜索模式:由字面值、通配符或者兩者組合構成的搜索條件。
語法(使用LIKE操作符):
1 2 3 |
SELECT [column_name] FROM [table_name] WHERE [column_name] LIKE '[string]' ; |
‘%’ 表示任何字符出現任意次數,例如 LIKE ‘jet%’ 匹配詞jet起頭的值,‘%anvil%’ 匹配任何位置包含文本anvil的值。
注意:
- 根據MySQL的配置方式,搜索可以是區分大小寫的;
- ‘%’ 可以匹配0個字符;
- 值的尾空格會干擾通配符匹配,最好在搜索模式最后附加一個%;
- ‘%’ 不能匹配NULL。
‘_’ 只匹配單個字符。
語法(使用REGEXP操作符):
1 2 3 |
SELECT [column_name] FROM [table_name] WHERE [column_name] REGEXP '[string]' ; |
基本匹配:‘.’ 表示匹配任意一個字符。
正則表達式匹配不區分大小寫,使用BINARY關鍵字區分,例如WHERE prod_name REGEXP BINARY ‘JetPack .000’。
但是 ‘[1|2|3] Ton’ 和 ‘1|2|3 Ton’ 匹配結果并不相同,后者表示匹配 1 或 2 或 3 Ton。
空白元字符
元字符 | 說明 |
---|---|
\\f | 換頁 |
\\n | 換行 |
\\r | 回車 |
\\t | 制表 |
\\v | 縱向制表 |
字符類
類 | 說明 |
---|---|
[:alnum:] | 任意字母和數字 |
[:alpha:] | 任意字符(同[a-zA-Z]) |
[:blank:] | 空格和制表 |
[:cntrl:] | ASCII控制字符(0-31和127) |
[:digit:] | 任意數字 |
[:graph:] | 與[:print:]相同,但是不包括空格 |
[:lower:] | 任意小寫字母 |
[:print:] | 任意可打印字符 |
[:punct:] | 既不在[:alnum:]也不在[:cntrl:] 中的任意字符 |
[:space:] | 包括空格在內的任意空白字符 |
[:upper:] | 任意大寫字符 |
[:xdigit:] | 任意十六進制數字 |
重復元字符
元字符 | 說明 |
---|---|
* | 0個或多個匹配 |
+ | 1個或多個匹配 |
? | 0個或多個匹配 |
{n} | 指定數目匹配 |
{n, } | 不少于指定數目的匹配 |
{n, m} | 匹配數目的范圍(m不超過255) |
定位元字符
元字符 | 說明 |
---|---|
^ | 文本的開始 |
$ | 文本的結尾 |
[[:<:]] | 詞的開始 |
[[:>:]] | 詞的結尾 |
舉例:
1 2 3 |
SELECT prod_name FROM products WHERE prod_name REGEXP '^[0-9\\.]' ; |
如果匹配文本在列值中出現,則LIKE不會匹配,但是REGEXP會匹配。
可以通過用 ^ 開始每個表達式,用 $ 結束每個表達式,使得REGEXP的作用和LIKE一樣。
1 | SELECT 'hello' REGEXP '[0-9]' ; //結果返回0 |
到此這篇關于MySQL通配符與正則表達式搜過濾數據的文章就介紹到這了
2022-09-11
MySQL樂觀鎖和悲觀鎖具體實現2022-09-11
SQL Server服務器監控2022-09-11
系統城分享CentOS7下安裝MySQL5.7.39的詳細過程建立到服務器的遠程連接 用apt-get安裝mysql 設置root密碼 編輯配置文件監聽遠程連接 允許root賬號使用遠程連接 檢查ubuntu自帶的防火墻狀態 檢查云服務器廠商的防火墻狀態 測試連接...
2022-06-20
一、實驗目的 二、實驗要求 三、實現內容及步驟 1、學生表:student 2、寢室表:dormitory 3、管理員表:admin 四、實驗總結...
2022-06-20