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

MySQL?JSON類型數(shù)據(jù)查詢方法

 更新時間:2025年04月17日 10:08:11   作者:dark-Moss  
這篇文章主要介紹了MySQL?JSON類型數(shù)據(jù)查詢,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧

1、json對象

1.1、方法

  • 使用對象操作的方法進(jìn)行查詢:字段->'$.json屬性'
  • 使用函數(shù)進(jìn)行查詢:json_extract(字段, '$.json屬性')
  • 獲取JSON數(shù)組/對象長度:JSON_LENGTH()

1.2、數(shù)據(jù) 

CREATE TABLE `test` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增ID',
  `goods_sn` varchar(25) NOT NULL DEFAULT '' COMMENT '商品編碼',
  `desc_attr` json NOT NULL COMMENT '描述屬性',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB COMMENT='TEST';
INSERT INTO `test`.`test`(`id`, `goods_sn`, `desc_attr`) VALUES (1, 'A0001', '{\"tag\": [\"GRS\", \"GOTS\"], \"size\": \"M\", \"color\": \"紅色\", \"material\": \"尼龍\"}');
INSERT INTO `test`.`test`(`id`, `goods_sn`, `desc_attr`) VALUES (2, 'A0002', '{\"tag\": [\"GRS\", \"GOTS\", \"MTD\"], \"size\": \"LA\", \"color\": \"黃色\", \"material\": \"純棉\"}');

1.3、查詢

-- 查詢面料不為空的商品
select * from test where desc_attr->'$.material' is not null;
select * from test where JSON_EXTRACT(desc_attr, '$.material') is not null;
-- 查詢面料為純棉的商品
select * from test where desc_attr->'$.material'='純棉';
select * from test where JSON_EXTRACT(desc_attr, '$.material')='純棉';
-- 查詢標(biāo)簽數(shù)量大于2的商品
select * from test where JSON_LENGTH(desc_attr->'$.tag')>2;

2、json數(shù)組

2.1、方法

  • 對象操作方式查詢:字段->'$[*].屬性'
  • 使用函數(shù)查詢:JSON_CONTAINS(字段,JSON_OBJECT('json屬性', '內(nèi)容'))
  • 獲取JSON數(shù)組/對象長度:JSON_LENGTH()

2.2、數(shù)據(jù)

CREATE TABLE `test2` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增ID',
  `goods_sn` varchar(25) NOT NULL DEFAULT '' COMMENT '商品編碼',
  `desc_attrs` json NOT NULL COMMENT '描述屬性,多個',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB COMMENT='TEST2';
INSERT INTO `test`.`test2`(`id`, `goods_sn`, `desc_attrs`) VALUES (1, 'A0001', '[{\"tag\": [\"GRS\", \"GOTS\"], \"size\": \"M\", \"color\": \"紅色\", \"material\": \"尼龍\"}, {\"tag\": [\"GRS\", \"GOTS\", \"MTD\"], \"size\": \"LA\", \"color\": \"黃色\", \"material\": \"純棉\"}]');
INSERT INTO `test`.`test2`(`id`, `goods_sn`, `desc_attrs`) VALUES (2, 'A0002', '[{\"tag\": [\"GRS\", \"GOTS\"], \"size\": \"M\", \"color\": \"紅色\", \"material\": \"尼龍\"}, {\"tag\": [\"GRS\", \"GOTS\", \"MTD\"], \"link\": \"xxx\", \"size\": \"LA\", \"color\": \"黃色\", \"material\": \"純棉\"}]');
INSERT INTO `test`.`test2`(`id`, `goods_sn`, `desc_attrs`) VALUES (3, 'A0003', '[]');

2.3、查詢

-- 查詢描述屬性不為空的商品
select * from test2 where JSON_LENGTH(desc_attrs) > 0;
-- 查詢第1項(xiàng)存在顏色屬性的商品
select * from test2 where desc_attrs->'$[0].color' is not null;
-- 查詢?nèi)我忭?xiàng)存在鏈接屬性的商品
select * from test2 where desc_attrs->'$[*].link' is not null;
-- 查詢?nèi)我忭?xiàng)存在鏈接等于xxx屬性的商品
select * from test2 where JSON_CONTAINS(desc_attrs,JSON_OBJECT('link', 'xxx'));

注意

-- [{"link":"xxx"}]
select desc_attrs->'$[*].link' from test2 where id=2;
-- 查詢結(jié)果為`["xxx"]`
-- 返回每一項(xiàng)的link,所以是個數(shù)組

到此這篇關(guān)于MySQL JSON類型數(shù)據(jù)查詢的文章就介紹到這了,更多相關(guān)MySQL JSON類型數(shù)據(jù)查詢內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MySQL中l(wèi)ength()、char_length()的區(qū)別

    MySQL中l(wèi)ength()、char_length()的區(qū)別

    在MySQL中l(wèi)ength(str)、char_length(str)都屬于判斷長度的內(nèi)置函數(shù),本文主要介紹了MySQL中l(wèi)ength()、char_length()的區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • mysql記錄根據(jù)日期字段倒序輸出

    mysql記錄根據(jù)日期字段倒序輸出

    這篇文章主要介紹了mysql記錄根據(jù)日期字段倒序輸出 的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-07-07
  • MySQL系列多表連接查詢92及99語法示例詳解教程

    MySQL系列多表連接查詢92及99語法示例詳解教程

    這篇文章主要為大家介紹了MySQL系列多表連接查詢92及99語法示例詳解教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2021-10-10
  • mysql 8.0.16 壓縮包安裝配置方法圖文教程

    mysql 8.0.16 壓縮包安裝配置方法圖文教程

    這篇文章主要為大家詳細(xì)介紹了mysql 8.0.16 壓縮包安裝配置方法圖文教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-05-05
  • MySQL中JOIN連接的基本用法實(shí)例

    MySQL中JOIN連接的基本用法實(shí)例

    大家對join應(yīng)該都不會陌生,join可以將兩個表連接起來,下面這篇文章主要給大家介紹了關(guān)于MySQL中JOIN連接用法的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-06-06
  • [MySQL binlog]mysql如何徹底解析Mixed日志格式的binlog

    [MySQL binlog]mysql如何徹底解析Mixed日志格式的binlog

    這篇文章主要介紹了mysql徹底解析Mixed日志格式的binlog,需要的朋友可以參考下
    2014-02-02
  • MySQL排序機(jī)制之獲取最后10條數(shù)據(jù)的正確方法

    MySQL排序機(jī)制之獲取最后10條數(shù)據(jù)的正確方法

    在日志分析、最新數(shù)據(jù)展示等場景中,我們常需獲取排序后的最后N條數(shù)據(jù),傳統(tǒng)思維認(rèn)為直接使用ORDER BY ... DESC LIMIT N即可,但實(shí)測發(fā)現(xiàn)這種寫法在大數(shù)據(jù)量下性能驟降,本文將深入解析MySQL排序機(jī)制,揭秘高效獲取最后10條數(shù)據(jù)的科學(xué)方法,需要的朋友可以參考下
    2026-02-02
  • MySQL數(shù)據(jù)庫Event定時執(zhí)行任務(wù)詳解

    MySQL數(shù)據(jù)庫Event定時執(zhí)行任務(wù)詳解

    這篇文章主要介紹了MySQL數(shù)據(jù)庫Event定時執(zhí)行任務(wù)
    2017-12-12
  • MySQL之undo日志頁結(jié)構(gòu)詳解

    MySQL之undo日志頁結(jié)構(gòu)詳解

    這篇文章主要介紹了MySQL之undo日志頁結(jié)構(gòu),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-06-06
  • SQL中的聯(lián)合索引和普通索引問題

    SQL中的聯(lián)合索引和普通索引問題

    這篇文章主要介紹了SQL中的聯(lián)合索引和普通索引問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09

最新評論

资源县| 通山县| 德州市| 屯留县| 栾川县| 浪卡子县| 修水县| 水城县| 黄骅市| 鄂托克前旗| 三门峡市| 绵阳市| 湛江市| 桦川县| 绥芬河市| 邓州市| 灌南县| 军事| 左云县| 英超| 尼勒克县| 玉门市| 定结县| 大余县| 柳河县| 天柱县| 文成县| 通州市| 琼结县| 温州市| 鄄城县| 民乐县| 三门峡市| 乌什县| 宜君县| 平山县| 丹凤县| 文化| 抚顺市| 桦甸市| 阳城县|