好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > Mysql中FIND_IN_SET()和IN區(qū)別簡析

Mysql中FIND_IN_SET()和IN區(qū)別簡析

熱門標簽:龍圖酒吧地圖標注 地圖標注圖標素材入駐 怎么辦理400電話呢 好搜地圖標注 怎么申請400電話申請 電話機器人免費嗎 400電話申請什么好 百度地圖標注地方備注 電銷機器人價格多少錢一臺

前段時間項目中使用到Mysql的FIND_IN_SET函數(shù),感覺挺好用的。過一段時間,老大找到我說,這個需要改為IN,哈哈,只能改了,原因會在下面分析到!

弄個測試表來說說兩者的區(qū)別,測試數(shù)據(jù)直接在問答區(qū)copy一份,能說明問題就行,哈哈,如果侵犯您的版權還請見諒,互聯(lián)網(wǎng)嗎,就需要分享!

測試代碼:  
CREATE TABLE `test` ( 
 `id` int(8) NOT NULL auto_increment, 
 `name` varchar(255) NOT NULL, 
 `list` varchar(255) NOT NULL, 
 PRIMARY KEY (`id`) 
) 
INSERT INTO `test` VALUES (1, 'name', 'daodao,xiaohu,xiaoqin'); 
INSERT INTO `test` VALUES (2, 'name2', 'xiaohu,daodao,xiaoqin'); 
INSERT INTO `test` VALUES (3, 'name3', 'xiaoqin,daodao,xiaohu'); 
test1:sql = select * from `test` where 'daodao' IN (`list`); 
得到結果空值. 
test2:sql = select * from `test` where FIND_IN_SET('daodao',`list`); 
得到三條數(shù)據(jù)。 

拿上面的實驗數(shù)據(jù)說話,test1得到的結果為空,為什么呢?因為,mysql中In是比較等不等,此處‘list'是表中的一個字段,也就是變量,除非它的值剛好和name的值一樣,否則返回的結果都為空。拿test1來說,也即把‘daodao'改為‘daodao,xiaohu,xiaoqin'才會匹配到第一條記。

test2返回三條數(shù)據(jù),可能是我們剛好需要的。mysql中FIND_IN_SET函數(shù)用來比較是不是包含,不管‘list'字段是變量或給定的字符串常量都能很好的工作。MySQL中原型為:FIND_IN_SET(str,strlist)。 假如字符串str 在由N 子鏈組成的字符串列表strlist 中,則返回值的范圍在 1 到 N 之間。

一個字符串列表就是一個由一些被‘,'符號分開的子鏈組成的字符串。如果第一個參數(shù)是一個常數(shù)字符串,而第二個是type SET列,則   FIND_IN_SET() 函數(shù)被優(yōu)化,使用比特計算。 如果str不在strlist 或strlist 為空字符串,則返回值為 0 。如任意一個參數(shù)為NULL,則返回值為 NULL。這個函數(shù)在第一個參數(shù)包含一個逗號(‘,')時將無法正常運行。str也可以是變量,比如表中的一個字段。

當然,這不是我們項目中需要將FIND_IN_SET替換為IN的原因,因為在我們項目中兩者都可以實現(xiàn)功能。只是IN比FIND_IN_SET性能高。我們要查詢的字段是主鍵,使用IN時會使用索引,只會查詢表中部分數(shù)據(jù)。FIND_IN_SET則會查詢表中全部數(shù)據(jù),由于數(shù)據(jù)量比較大,性能肯定不高,所以替換為IN。想看查詢部分還是全部,可以使用EXPLAIN即解釋功能查看,如果是部分則type為range(范圍),全部則type為ALL(全部),還有個type是const,常量級的,呵呵。。。

最佳實踐:

1、如果待查詢的條件是常量那就使用IN,是變量則使用FIND_IN_SET,可以使用索引的,貌似,哈哈。

2、如果使用IN和FIND_IN_SET都能滿足條件,則最好使用IN,理由同上,特別是查詢字段為主鍵時或有索引時。

3、如果使用IN不能滿足功能需求,那只能使用FIND_IN_SET了,哈哈,有時候說不定IN中條件加個%號也可以解決問題,加個%號IN就不只是比較是否相等了!

總結

以上就是本文關于Mysql中FIND_IN_SET()和IN區(qū)別簡析的全部內容,感興趣的朋友可以參閱:MySQL數(shù)據(jù)庫表分區(qū)注意事項大全【推薦】、幾個比較重要的MySQL變量、sql和MySQL的語句執(zhí)行順序分析等,希望對大家有所幫助。歡迎大家留言交流討論,如有不足之處,小編會及時改正補充。

您可能感興趣的文章:
  • mysql通過find_in_set()函數(shù)實現(xiàn)where in()順序排序
  • Mysql中的find_in_set的使用方法介紹
  • MySQL的FIND_IN_SET函數(shù)使用方法分享
  • 完美解決mysql in條件語句只讀取一條信息問題的2種方案

標簽:撫順 溫州 固原 浙江 內江 廣西 防疫工作 汕尾

巨人網(wǎng)絡通訊聲明:本文標題《Mysql中FIND_IN_SET()和IN區(qū)別簡析》,本文關鍵詞  Mysql,中,FIND,SET,和,區(qū)別,;如發(fā)現(xiàn)本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Mysql中FIND_IN_SET()和IN區(qū)別簡析》相關的同類信息!
  • 本頁收集關于Mysql中FIND_IN_SET()和IN區(qū)別簡析的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 黄色的视频网站| 丝袜的诱惑小说| 免费的黄漫?18禁动漫app | 91视频黄| 欧美在线成人怡红院| 四虎亚洲精品国产色情999 | Moms-Sons熟女系列| 991在线无码精品秘?人口| 双腿被分到最大np| 草莓视频app下载安装免费无限看-丝瓜安卓| 久久精品久久久久久久精品门 | 嗯啊哦好大| comwww在线观看免费软件| 女人爽到喷水的视频大全| 美女黄频a美女大全免费皮| 91精品天天综合网站| 被夫の上司持久侵犯耻辱在线| 青青草原播放器| 97婷婷大伊香蕉精品视频| jiizz欧美成熟HD丰满人妻| 丰满乳的亲伦小说| 七金尸| 梁朝伟吃奶摸下边视频| 清冷受被做得合不拢腿bl| 日韩啪啪电影| 性荡乳情欲视频播放在线观看| 国产一级a一级a免费视频| 户外勾搭农村妇女野战| 日本特黄绿像大片免费看| 尤物视频一区| 国产一级特黄aa级特黄裸毛片| 成人免费???APP| 一级A片婬试看30分钟小说| 婬色男女乱婬视频一级呼噜网| 成a人无码亚洲成a无码一区变态 | 国产成人a亚洲精品无码| 人妻无码AV中文系在线电影 | 边摸边吃奶边做激情叫床gif| 老头吃月子奶的电影叫什么| 五月综合缴情综合小说欧美AV| 91精品一区国产高清在线gif|