mysql通配符的具體使用
概念:
通配符(wildcard)
即:用來匹配值的一部分的特殊字符。
搜索模式(search pattern)
即:由字面值、通配符或兩者組合構(gòu)成的搜索條件。
1、 百分號(hào)(%)通配符
最常使用的通配符是百分號(hào)(%)。在搜索串中,%表示任何字符出現(xiàn)任意次數(shù)。匹配時(shí),一般是不區(qū)分大小寫的,但是根據(jù)MySQL的配置方式,搜索可以是區(qū)分大小寫的,加BINARY關(guān)鍵字。
SELECT id, name FROM test_table WHERE BINARY info LIKE '%ab%ed';
重要的是要注意到,除了一個(gè)或多個(gè)字符外,%還能匹配0個(gè)字符。%代表搜索模式中給定位置的0個(gè)、1個(gè)或多個(gè)字符,例如:
SELECT id, name FROM test_table WHERE info LIKE '%ab%ed';
注意尾空格 尾空格可能會(huì)干擾通配符匹配。例如,在保存詞anvil 時(shí), 如果它后面有一個(gè)或多個(gè)空格, 則子句WHERE prod_name LIKE '%anvil’將不會(huì)匹配它們,因?yàn)樵谧詈蟮膌后有多余的字符。解決這個(gè)問題的一個(gè)簡(jiǎn)單的辦法是在搜索模式最后附加一個(gè)%。一個(gè)更好的辦法是使用函數(shù)(trim())去掉首尾空格,函數(shù)Trim()、RTrim()、LTrim();
注意NULL 雖然似乎%通配符可以匹配任何東西,但有一個(gè)例外,即NULL。即使是WHERE prod_name LIKE '%'也不能匹配用值NULL作為產(chǎn)品名的行。
2、 下劃線(_)通配符
下劃線的用途與%一樣,但下劃線只匹配單個(gè)字符而不是多個(gè)字符。
與%能匹配0個(gè)字符不一樣,_總是匹配一個(gè)字符,不能多也不能少。
【注】MySQL的通配符很有用。但這種功能是有代價(jià)的:通配符搜索的處理一般要比其他搜索所花時(shí)間更長(zhǎng)。這里給出一些使用通配符要記住的技巧。
不要過度使用通配符。如果其他操作符能達(dá)到相同的目的,應(yīng)該使用其他操作符。
在確實(shí)需要使用通配符時(shí),除非絕對(duì)有必要,否則不要把它們用在搜索模式的開始處。把通配符置于搜索模式的開始處,搜索起來是最慢的。
仔細(xì)注意通配符的位置。如果放錯(cuò)地方,可能不會(huì)返回想要的數(shù)據(jù)
3、使用通配符時(shí)易忽略的一個(gè)問題
以上述 a 表為例:

當(dāng)我們要查詢以exp_asd_10_開頭的數(shù)據(jù)時(shí),sql語(yǔ)句應(yīng)該如何去寫?
select * from a where name like 'exp_asd_10_%'
查詢結(jié)果:

很自信的執(zhí)行了這條sql語(yǔ)句,你會(huì)發(fā)現(xiàn)結(jié)果并不是自己所預(yù)期的那樣,執(zhí)行上面的sql語(yǔ)句會(huì)把所有的以exp_asd_10開頭的數(shù)據(jù)都查找到
原因:
在sql中,下劃線_也是一個(gè)通配符,能匹配任意一個(gè)字符,像上面那樣寫的話。
正確的寫法應(yīng)該是:
select * from a where name like 'exp\_asd\_10\_%'
在_通配符前面加上轉(zhuǎn)義字符\,這樣mysql就會(huì)把下劃線通配符視為普通字符
到此這篇關(guān)于mysql通配符的具體使用的文章就介紹到這了,更多相關(guān)mysql通配符內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
mysql數(shù)據(jù)插入覆蓋和時(shí)間戳的問題及解決
這篇文章主要介紹了mysql數(shù)據(jù)插入覆蓋和時(shí)間戳的問題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03
Linux系統(tǒng)徹底刪除Mysql的詳細(xì)教程
我們?cè)谥匦掳惭bMySQL、或更新MySQL版本時(shí),一定會(huì)遇到mysql數(shù)據(jù)殘留(臟數(shù)據(jù)),或組件沖突等問題,下面這篇文章主要給大家介紹了關(guān)于Linux系統(tǒng)徹底刪除Mysql的詳細(xì)教程,需要的朋友可以參考下2023-02-02
如何解決mysql表輸入中文出現(xiàn)問號(hào)的問題
這篇文章主要介紹了如何解決mysql表輸入中文出現(xiàn)問號(hào)的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01
一文整理新手最常犯的SQL高頻語(yǔ)法錯(cuò)誤和避坑合集
本文整理了SQL新手常見的10類語(yǔ)法錯(cuò)誤,包括基礎(chǔ)語(yǔ)法錯(cuò)誤,CRUD操作錯(cuò)誤,查詢類錯(cuò)誤等,每個(gè)錯(cuò)誤都提供錯(cuò)誤示例、正確寫法及避坑技巧,希望對(duì)大家有所幫助2026-05-05
MySQL參數(shù)優(yōu)化信息參考(my.cnf參數(shù)優(yōu)化)
下面針對(duì)一些參數(shù)進(jìn)行說明,當(dāng)然還有其它的設(shè)置可以起作用,取決于你的負(fù)載或硬件:在慢內(nèi)存和快磁盤、高并發(fā)和寫密集型負(fù)載情況下,你將需要特殊的調(diào)整2024-07-07
Mysql 5.7.19 winx64 ZIP Archive 安裝及使用過程問題小結(jié)
本篇文章給大家介紹了mysql 5.7.19 winx64 ZIP Archive 安裝及使用過程問題小結(jié),需要的朋友可以參考下2017-07-07
打開和關(guān)閉mysql服務(wù)的兩種實(shí)現(xiàn)方法
這篇文章主要介紹了打開和關(guān)閉mysql服務(wù)的兩種實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-07-07

