国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

find_in_set - 請教 mysql查詢

瀏覽:144日期:2022-06-20 18:36:16

問題描述

mysql 表中字段option_tag 存儲的值格式(分號)為: 4:539;8:543;4:545;8:549通過 find_in_set() 可以查找到以逗號分隔的字符串。以分號分隔的 字符串 有什么函數直接能查詢到 option 含有 539的所有值?

find_in_set - 請教 mysql查詢

問題解答

回答1:

sql語句:SELECT * FROM tableWHERE locate(’:539;’, CONCAT(options_tag, ’;’)) > 0

用like的方法邏輯上不嚴謹,如4:2539這種情況也會被like匹配,但不是想要的結果。

從設計方案考慮,如果是復雜的數據類型,建議存成json格式,mysql高版本直接內置了json解析、查詢功能。

回答2:

通過like或者正則即可。但是不建議將邏輯放在mysql中,造成數據庫引擎壓力過大,而且極度不安全。正確的做法應該是把整個字段的值取出來,作為字符串然后用語言比如php python nodejs之類的處理。

回答3:

SELECT * FROM tableWHERE options_tag LIKE ’%539%’;

正如@小蟲哥哥 所說,這是設計缺陷,這看起來是一個一對多或者多對多的關系,不應該用一個字段存起來,不僅查詢效率低(在SQL里對字段進行運算有可能會使該字段的索引無法被使用),而且查詢起來也不靈活。

回答4:

like 匹配

回答5:

like :539

回答6:

我說這是設計缺陷有人贊同嗎

回答7:

like相似匹配

回答8:

模糊查詢研究下

相關文章:
主站蜘蛛池模板: 直接看的毛片 | 性感美女视频黄.免费网站 性高湖久久久久久久久 | 亚洲精品国产一区二区三区四区 | 精品区| 中文字幕99在线精品视频免费看 | 亚洲国语 | 亚洲性欧美 | 91国内精品久久久久影院优播 | 在线免费观看毛片网站 | 韩国欧洲一级毛片 | 亚洲精品人成网在线播放影院 | 亚洲男人天堂手机版 | 久久免费视频2 | 成人合集大片bd高清在线观看 | 亚洲免费在线观看视频 | 午夜无遮挡怕怕怕免费视频 | 91精品国产综合久久青草 | 国产中文字幕在线免费观看 | 午夜性刺激免费视频观看不卡专区 | 手机看片国产 | 国产福利社区 | 国产精品大片天天看片 | 伊人天堂在线 | 美女黄页黄频 | 天堂成人av| 美女很黄免费 | m男亚洲一区中文字幕 | 中文字幕日韩一区二区不卡 | 欧美操操操操 | 在线视频中文 | 三级黄色毛片网站 | 日韩欧美成人乱码一在线 | 一本三道a无线码一区v | 91久久99| 久久毛片视频 | 久久综合久久美利坚合众国 | 中文字幕在线网址 | 永久免费毛片手机版在线看 | 欧美成人高清免费大片观看 | 成年人免费在线视频网站 | 欧美成人精品免费播放 |