一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數據庫技術|

服務器之家 - 數據庫 - Mysql - MySql模糊查詢json關鍵字檢索方案示例

MySql模糊查詢json關鍵字檢索方案示例

2022-01-17 18:01PHPer自談 Mysql

大家好,本篇文章主要講的是MySql模糊查詢json關鍵字檢索方案示例,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下哦,方便下次瀏覽

前言

?最近在項目中遇到這樣一個需求:需要在數據表中檢索包含指定內容的結果集,該字段的數據類型為text,存儲的內容是json格式,具體表結構如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
create table `product` (
    `id` int(11) unsigned not null auto_increment comment 'id',
    `name` varchar(100) not null default '' comment '產品名稱' collate 'utf8mb4_general_ci',
    `price` decimal(10,2) unsigned not null default '0.00' comment '產品價格',
    `suit` text not null comment '適用門店 json格式保存門店id' collate 'utf8mb4_general_ci',
    `status` tinyint(3) not null default '0' comment '狀態 1-正常 0-刪除 2-下架',
    `create_date` datetime not null default current_timestamp comment '發布時間',
    `update_date` datetime not null default current_timestamp on update current_timestamp comment '修改時間',
    primary key (`id`) using btree
)
comment='產品表'
collate='utf8mb4_general_ci'
engine=innodb
auto_increment=1
;

表數據如下:

MySql模糊查詢json關鍵字檢索方案示例

現需求:查找 suit->hotel 中包含10001的數據。

通過谷歌百度查找,大致找到以下幾種方案:

方案一:

?
1
2
select * from product where suit like '%"10001"%';
#like方式不能使用索引,性能不佳,且準確性不足

方案二:

?
1
2
select * from product where suit locate('"10001"', 'suit') > 0;
# locate方式和like存在相同問題

方案三:

?
1
2
select * from product where suit != '' and json_contains('suit'->'$.hotel', '"10001"');
#以mysql內置json函數查找,需要mysql5.7以上版本才能支持,準確性較高,不能使用全文索引

方案四(最終采用方案):

?
1
2
select * from product where match(suit) against('+"10001"' in boolean mode);
#可使用全文索引,mysql關鍵字默認限制最少4個字符,可在mysql.ini中修改 ft_min_word_len=2,重啟后生效

match() against() 更多使用方法可查看mysql參考手冊:

https://dev.mysql.com/doc/refman/5.6/ja/fulltext-boolean.html

總結

到此這篇關于mysql模糊查詢json關鍵字檢索方案示例的文章就介紹到這了,更多相關mysql json關鍵字檢索內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://blog.csdn.net/zxw09332/article/details/121626111

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 我的年轻漂亮继坶三级 | 欧美yyy| 情人我吃糖果小说 | 奇米影视7777久久精品 | 无遮无挡免费视频 | 美女的隐私无遮挡的网页 | 星空无限传媒xk8027穆娜 | 99久久综合 | 国产成人无精品久久久久国语 | 8x8x极品国产在线 | 五月激情丁香婷婷综合第九 | 欧美撒尿屁股嘘嘘撒尿 | 日本福利网 | 婷婷精品 | 我们中文在线观看免费完整版 | 性xxxx中国 | 美女免费观看一区二区三区 | 四虎论坛 | 欧美成人v视频免费看 | 亚洲福利在线观看 | 99久久精品免费看国产一区 | 毛片在线观看网站 | 国产一级视频在线观看 | 蜜桃在线 | tiny4k欧美极品在线 | 私人黄色影院 | 不知火舞被c视频在线播放 不卡一区二区三区卡 | 成人国产在线视频在线观看 | 亚洲欧美日韩天堂在线观看 | 被老外玩爽的中国美女视频 | 海绵宝宝第二季全集免费观看 | 小柔的性放荡羞辱日记动漫 | 国色天香社区在线 | 36美女厕所撒尿全过程 | 色妞女女女女女bbbb | 免费看视频 | 欧美精品久久久久久久影视 | 久久一er精这里有精品 | 欧美日韩在线成人看片a | 深夜影院a | 国产免费成人在线视频 |