色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

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

find_in_set - 請教 mysql查詢

瀏覽:123日期: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:

模糊查詢研究下

相關文章:
主站蜘蛛池模板: 欧美三级香港三级日本三级 | 俄罗斯小屁孩cao大人免费 | 久久成 | 久国产 | 在线看一级片 | 欧美日韩一区二区三区四区在线观看 | 精品国产高清在线看国产 | 九九色综合网 | heyzo国产亚洲高清 | 中文字幕日韩国产 | 免费观看的毛片手机视频 | 成人合集大片bd高清在线观看 | 日韩亚洲欧美综合一区二区三区 | 国产真人毛片一级视频 | 日本一本色道 | 午夜性爽快免费视频播放 | 亚洲乱人伦精品图片 | 一级黄色欧美片 | 黄频漫画 | 久久久久99精品成人片三人毛片 | 好吊操这里只有精品 | 男女在线免费视频 | 欧美一级永久免费毛片在线 | 99视频在线观看免费 | 另类一区二区三区 | 三级免费网站 | 国产精品免费视频一区一 | 国产欧美一区二区日本加勒比 | 亚洲第一区视频在线观看 | 精品91一区二区三区 | 久9青青cao精品视频在线 | 亚洲综合色就色手机在线观看 | 国产精品久久久久网站 | 国亚洲欧美日韩精品 | 精品国产区一区二区三区在线观看 | 加勒比在线免费视频 | 国产欧美在线一区二区三区 | 久久国产视频在线观看 | 久久久久久综合成人精品 | 亚洲欧美精品成人久久91 | 国产日韩欧美一区二区三区在线 |