MySQL模糊查找like通配符使用(小白入門篇)
引言
“ 這是MySQL系列筆記的第八篇,文章內(nèi)容均為本人通過實(shí)踐及查閱資料相關(guān)整理所得,可用作新手入門指南,或者個(gè)人知識(shí)點(diǎn)查閱。”
這一節(jié)介紹 like 的模糊搜索用法。
跟 like 搭配的通配符有兩種,一種是 %,一種是 _
% 是不限次數(shù),不限字符的
_ 是不限字符,但是僅限次數(shù)為 1 的
- %
- _
1、%
% 這個(gè)通配符表達(dá)的含義是 不限次數(shù)、不限字符。
舉個(gè)例子,如果你寫的是:
WHERE?name?LIKE?'%ython'
那么,下面這種數(shù)據(jù)你都可以匹配上:
ython
python
Python
123ython
asdasdajcaliaython
也就是說,在 ython 前包含了0個(gè)或者無數(shù)個(gè)字符的數(shù)據(jù)都屬于滿足要求。
如果想要在 ython 后也能有字符怎么辦?在后面加上 % 即可。
也就是說想要在左右兩邊,哪邊需要匹配字符,就往哪邊加 %
如果我們嘗試下面的語句:
select?*?from?book?where?book_name?like?'%YTHO%';
可以發(fā)現(xiàn)小寫的數(shù)據(jù)也被搜索出來,如果我們希望強(qiáng)制區(qū)分大小寫,也就是搜索的是小寫字母就返回小寫字母,搜索的是大寫就返回大寫,可以加上 binary 參數(shù):
select?*?from?book?where?binary?book_name?like?'%YTHON%';
2、_
_ 這個(gè)字符也可用于模糊搜索,但是它只能匹配一個(gè)字符,接下來我們插入幾條數(shù)據(jù):
insert?into?book?(book_name,?author)?values('test',?'test_author'),?('sest',?'sest_author'),?('atest',?'atest_author');
然后這樣搜索:
select?*?from?book?where?book_name?like?'_est';
這樣,book_name 為 test 和 sest 的數(shù)據(jù)就可以被搜索出來,值為 atest 的就不會(huì),因?yàn)?nbsp;_ 僅匹配一個(gè)任意字符。
靈光一現(xiàn):一個(gè)下劃線 _ 可以匹配一個(gè)字符,那么多個(gè)下劃線 _ 呢,是不是可以匹配多個(gè)任意字符?
確實(shí)如此,不信我們可以嘗試:
select?*?from?book?where?book_name?like?'__st';
注意:
通配符的使用會(huì)使得查找的時(shí)間變長,能用更精確的限制條件就用其他的條件
不要把通配符放在搜索語句的開始處,可以把更精確的搜索條件盡量往左邊放
如果一定要使用通配符,_ 和% 也是可以組合使用的,在限定字符長度方面有很大幫助。
以上就是MySQL模糊查找like通配符使用(小白入門篇)的詳細(xì)內(nèi)容,更多關(guān)于MySQL模糊查找like的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
MySQL5.7 如何通過邏輯備份遷移到GreatSQL及注意事項(xiàng)
在將數(shù)據(jù)庫從MySQL 5.7遷移到GreatSQL8.0.32時(shí),由于數(shù)據(jù)量較小且關(guān)注安全性,決定使用mysqldump執(zhí)行邏輯備份,并將數(shù)據(jù)導(dǎo)入GreatSQL,這篇文章主要介紹了MySQL5.7 通過邏輯備份遷移到GreatSQL注意事項(xiàng),需要的朋友可以參考下2024-06-06Windows下修改mysql的data文件夾存放位置的方法
這篇文章主要介紹了在Windows下修改mysql的data文件夾存放位置的方法,需要的朋友可以參考下2014-03-03MySQL ERROR 1045 (28000): Access denied for user ''root''@''
這篇文章主要介紹了MySQL ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO) 的原因分解決辦法的相關(guān)資料,需要的朋友可以參考下2016-05-05mysql如何修改表結(jié)構(gòu)(alter table),多列/多字段
這篇文章主要介紹了mysql如何修改表結(jié)構(gòu)(alter table),多列/多字段問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-12-12Linux系統(tǒng)下實(shí)現(xiàn)遠(yuǎn)程連接MySQL數(shù)據(jù)庫的方法教程
MySQL默認(rèn)root用戶只能本地訪問,不能遠(yuǎn)程連接管理mysql數(shù)據(jù)庫,Linux如何開啟mysql遠(yuǎn)程連接?下面這篇文章主要給大家介紹了在Linux系統(tǒng)下實(shí)現(xiàn)遠(yuǎn)程連接MySQL數(shù)據(jù)庫的方法教程,需要的朋友可以參考借鑒,下面來一起看看吧。2017-06-06MySQL 如何連接對(duì)應(yīng)的客戶端進(jìn)程
這篇文章主要介紹了MySQL 如何連接對(duì)應(yīng)的客戶端進(jìn)程,幫助大家更好的理解和學(xué)習(xí)MySQL,感興趣的朋友可以了解下2020-11-11MySQL 數(shù)據(jù)庫的臨時(shí)文件究竟儲(chǔ)存在哪里
MySQL使用環(huán)境變量TMPDIR的值作為保存臨時(shí)文件的目錄的路徑名。2009-02-02MySQL系列之十 MySQL事務(wù)隔離實(shí)現(xiàn)并發(fā)控制
今天的內(nèi)容就和大家聊一聊MySQL數(shù)據(jù)庫中關(guān)于MySQL事務(wù)隔離實(shí)現(xiàn)并發(fā)控制的問題,主要是基于鎖實(shí)現(xiàn)控制技術(shù)2021-07-07SQL實(shí)現(xiàn)LeetCode(196.刪除重復(fù)郵箱)
這篇文章主要介紹了SQL實(shí)現(xiàn)LeetCode(196.刪除重復(fù)郵箱),本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-08-08