最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL中FIND_IN_SET()函數(shù)與in的區(qū)別及說明

 更新時間:2025年10月13日 09:04:16   作者:funtyung  
文章介紹了SQL中FIND_IN_SET函數(shù)和IN關(guān)鍵字的區(qū)別及使用,FIND_IN_SET允許字段或常量作為參數(shù)并進(jìn)行精確匹配,而IN只允許常量且進(jìn)行完全匹配,文章指出使用FIND_IN_SET可能導(dǎo)致索引失效,從而增加查詢時間

一、官方涵義

FIND_IN_SET(str,strlist) :  str 要查詢的字符串,strlist  需查詢的字段,參數(shù)以”,”分隔,形式如 (1,2,6,8,10,22);該函數(shù)的作用是查詢字段(strlist)中是否包含(str)的結(jié)果,返回結(jié)果為null或記錄。

in常用于where表達(dá)式中,其作用是查詢某個范圍內(nèi)的數(shù)據(jù)。

二、find_in_set() 和 in 的區(qū)別

1、in后面只能跟常量, find_in_set()函數(shù)可以使用常量或字段。

2、in是完全匹配,find_in_set()函數(shù)是精確匹配,字段值以英文”,”分隔。

另:like是廣泛的模糊匹配,字符串中沒有分隔符,F(xiàn)ind_IN_SET 是精確匹配,字段值以英文”,”分隔,F(xiàn)ind_IN_SET查詢的結(jié)果要小于like查詢的結(jié)果。

三、避坑要點(diǎn)

其實(shí)寫上面那些內(nèi)容主要是為了引出下面的這個大坑。

最近項(xiàng)目中又遇到了SQL查詢緩慢的問題,經(jīng)查閱代碼,SQL里面就用到了find_in_set()函數(shù)。

explain一下,發(fā)現(xiàn)并沒有使用到索引,查詢耗時三秒左右。

問題原因就是在這兒,find_in_set()是一個函數(shù),在創(chuàng)建了索引的字段上使用函數(shù)會造成索引失效,所以查詢緩慢。

解決辦法,就是將find_in_set()改為in(),in可以用到索引,改完之后,重新select,耗時零點(diǎn)零幾秒,完美解決!

總結(jié)

所以在SQL開發(fā)過程中,一定要注意函數(shù)的使用,會不會造成索引失效,而導(dǎo)致查詢緩慢的問題,從來及早發(fā)現(xiàn)并避免事故發(fā)生。

相關(guān)文章

最新評論

莒南县| 大田县| 宝应县| 台北县| 海兴县| 连南| 广灵县| 安平县| 青神县| 于都县| 宝应县| 保靖县| 灵丘县| 翼城县| 莆田市| 江川县| 中江县| 庄河市| 定州市| 依兰县| 察哈| 景谷| 分宜县| 福州市| 安徽省| 汾西县| 古交市| 娄底市| 拜泉县| 贡觉县| 岳阳市| 崇阳县| 福海县| 平武县| 霸州市| 韶山市| 陵水| 饶河县| 普安县| 逊克县| 大埔区|