mysql like語(yǔ)句 MySQL模糊查詢like和ilike的區(qū)別?
MySQL模糊查詢like和ilike的區(qū)別?LIKE 和 ILIKE 操作符可以模糊匹配字符串,LIKE是一般用法,ILIKE匹配時(shí)則不區(qū)分字符串的大小寫(xiě),~ 波浪號(hào)則可以使用正則匹配。LIKE和
MySQL模糊查詢like和ilike的區(qū)別?
LIKE 和 ILIKE 操作符可以模糊匹配字符串,LIKE是一般用法,ILIKE匹配時(shí)則不區(qū)分字符串的大小寫(xiě),~ 波浪號(hào)則可以使用正則匹配。
LIKE和 ILIKE
它們需要結(jié)合通配符使用,下面介紹兩種常用的通配符。
%:百分號(hào)用于匹配字符串序列,可匹配任意組合;
_:下劃線用于匹配任何單一字符。
則可以使用正則模式來(lái)匹配字符串,除此之外它匹配模式還有一個(gè)特殊的地方
select * from table where ~ "ab" --> 如果是這樣的形式就代表著他可以匹配任何包含ab的字符串其實(shí)就相當(dāng)于省略的兩邊的 .*
如果想要做前綴匹配或后綴匹配,可以用下面的方法
1、前綴 模糊查詢。
select * from table where ~ "^ab"
2、后綴 模糊查詢。
select * from table where ~ "ab$"
mysql查詢語(yǔ)句中l(wèi)ike的用法?
1、常見(jiàn)用法:(1)搭配%使用%代表一個(gè)或多個(gè)字符的通配符,譬如查詢字段name中以大開(kāi)頭的數(shù)據(jù):(2)搭配_使用_代表僅僅一個(gè)字符的通配符,把上面那條查詢語(yǔ)句中的%改為_(kāi),會(huì)發(fā)現(xiàn)只能查詢出一條數(shù)據(jù)。2、使用like模糊查詢會(huì)導(dǎo)致索引失效,在數(shù)據(jù)量大的時(shí)候會(huì)有性能問(wèn)題(1)盡量少以%或者_(dá)開(kāi)頭進(jìn)行模糊查詢通過(guò)explain執(zhí)行計(jì)劃,我們發(fā)現(xiàn),使用like模糊查詢時(shí),如果不以%和_開(kāi)頭查詢的話,索引還是有效的。(2)使用覆蓋索引當(dāng)查詢的的條件和查詢的結(jié)果都是索引中的字段的時(shí)候,這個(gè)索引我們可以稱之為覆蓋索引,這個(gè)時(shí)候,使用like模糊查詢索引是有效的。InnoDB中主鍵可以不添加進(jìn)索引中注意:使用覆蓋索引,對(duì)于字段的長(zhǎng)度是由要求限制的,一般超過(guò)長(zhǎng)度,索引也會(huì)失效這里如果查詢中帶有descripition字段,則覆蓋索引也會(huì)失效。like語(yǔ)句的語(yǔ)法格式是:select * from 表名 where 字段名 like 對(duì)應(yīng)值(子串),它主要是針對(duì)字符型字段的,它的作用是在一個(gè)字符型字段列中檢索包含對(duì)應(yīng)子串的。一、% 包含零個(gè)或多個(gè)字符的任意字符串:1、like"Mc%" 將搜索以字母 Mc 開(kāi)頭的所有字符串(如 McBadden)。2、like"%inger" 將搜索以字母 inger 結(jié)尾的所有字符串(如 Ringer、Stringer)。3、like"%en%" 將搜索在任何位置包含字母 en 的所有字符串(如 Bennet、Green、McBadden)。二、:_(下劃線) 任何單個(gè)字符:like"_heryl" 將搜索以字母 heryl 結(jié)尾的所有六個(gè)字母的名稱(如 Cheryl、Sheryl)。三、[ ] 指定范圍 ([a-f]) 或集合 ([abcdef]) 中的任何單個(gè)字符: 1,like"[CK]ars[eo]n" 將搜索下列字符串:Carsen、Karsen、Carson 和 Karson(如 Carson)。2、like"[M-Z]inger" 將搜索以字符串 inger 結(jié)尾、以從 M 到 Z 的任何單個(gè)字母開(kāi)頭的所有名稱(如 Ringer)。