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

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

 更新時(shí)間: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)致索引失效,從而增加查詢(xún)時(shí)間

一、官方涵義

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

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

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

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

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

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

三、避坑要點(diǎn)

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

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

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

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

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

總結(jié)

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

相關(guān)文章

最新評(píng)論

吉林省| 福清市| 德惠市| 新晃| 邻水| 额济纳旗| 阳东县| 二手房| 丰镇市| 济南市| 手游| 孟村| 清河县| 龙井市| 凌云县| 通海县| 尼木县| 吉木乃县| 大石桥市| 郸城县| 克山县| 绥棱县| 霍州市| 博湖县| 瑞丽市| 龙陵县| 微山县| 台湾省| 望城县| 西城区| 宜都市| 沙湾县| 新乡县| 疏附县| 左贡县| 诏安县| 儋州市| 福清市| 绥德县| 柏乡县| 稷山县|