MySQL查詢和篩選存儲(chǔ)的JSON數(shù)據(jù)的操作方法
一、背景介紹
JSON(JavaScript Object Notation)是一種輕量級(jí)的數(shù)據(jù)交換格式,在現(xiàn)代應(yīng)用程序中得到了廣泛的應(yīng)用。處理和存儲(chǔ)非結(jié)構(gòu)化數(shù)據(jù)變得越來(lái)越重要。MySQL 是一種常用的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),為了支持非結(jié)構(gòu)化數(shù)據(jù)的存儲(chǔ)和查詢,于是 MySQL引入了對(duì)JSON數(shù)據(jù)類型的支持。
MySQL從5.7.8版本開(kāi)始添加了對(duì)JSON的支持,使得我們可以在MySQL數(shù)據(jù)庫(kù)中存儲(chǔ)和查詢JSON格式的數(shù)據(jù)。本文將介紹如何使用MySQL查詢和篩選存儲(chǔ)的JSON數(shù)據(jù),并提供相應(yīng)的代碼示例。
二、支持的JSON數(shù)據(jù)類型
從MySQL 5.7.8版本開(kāi)始,MySQL引入了對(duì)JSON數(shù)據(jù)類型的支持。MySQL可以存儲(chǔ)任意的JSON數(shù)據(jù),包括對(duì)象、數(shù)組、字符串等。并且MySQL還對(duì)JSON數(shù)據(jù)類型還提供了一系列的操作函數(shù)和運(yùn)算符,以便于對(duì)JSON數(shù)據(jù)進(jìn)行查詢和操作。
三、基礎(chǔ)數(shù)據(jù)
3.1 創(chuàng)建表
DROP TABLE IF EXISTS `my_table`; CREATE TABLE `my_table` ( `id` int NOT NULL, `message` json NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; SET FOREIGN_KEY_CHECKS = 1;
上述示例創(chuàng)建了一個(gè)名為 my_table 的表,包含一個(gè)名為 message 的JSON列。message列可以存儲(chǔ)任意的JSON數(shù)據(jù)。
3.2 插入 JSON 數(shù)據(jù)
要在JSON列中插入數(shù)據(jù),可以使用JSON函數(shù)將JSON字符串轉(zhuǎn)換為JSON數(shù)據(jù)類型。以下是一個(gè)示例:
INSERT INTO `my_table` (`id`, `message`) VALUES (1, '{\"age\": 30, \"name\": \"John\"}');
INSERT INTO `my_table` (`id`, `message`) VALUES (2, '{\"age\": 40, \"name\": \"Mary\"}');
INSERT INTO `my_table` (`id`, `message`) VALUES (3, '{\"age\": 50, \"name\": \"Tom\"}');
INSERT INTO `my_table` (`id`, `message`) VALUES (4, '{\"age\": 60, \"name\": \"Jermy\"}');上述示例在my_table表中插入了4條記錄,其中 message 列包含一個(gè)JSON對(duì)象。
3.3 查詢 JSON 數(shù)據(jù)
可以使用->或者->>運(yùn)算符來(lái)查詢JSON數(shù)據(jù)。->運(yùn)算符返回JSON對(duì)象的屬性值,->>運(yùn)算符返回屬性值的字符串表示。
以下是兩個(gè)
查詢JSON數(shù)據(jù)的示例1:
SELECT message->'$.name' AS name FROM my_table;
結(jié)果如下:

查詢示例2:
SELECT * FROM my_table WHERE JSON_EXTRACT(message, '$.age') > 40
結(jié)果如下:

四、操作函數(shù)
MySQL提供了一系列的JSON數(shù)據(jù)操作函數(shù),以方便對(duì)JSON數(shù)據(jù)進(jìn)行查詢和操作。以下是一些常用的JSON數(shù)據(jù)操作函數(shù):
4.1 JSON_OBJECT
JSON_OBJECT函數(shù)用于創(chuàng)建一個(gè)JSON對(duì)象。以下是一個(gè)示例:
SELECT JSON_OBJECT('name', 'John', 'age', 30) AS message;上述示例創(chuàng)建了一個(gè)名為 message 的JSON對(duì)象,包含name和age屬性。

4.2 JSON_ARRAY
JSON_ARRAY函數(shù)用于創(chuàng)建一個(gè)JSON數(shù)組。以下是一個(gè)示例:
SELECT JSON_ARRAY('apple', 'banana', 'orange') AS fruits;上述示例創(chuàng)建了一個(gè)名為fruits的JSON數(shù)組,包含三個(gè)元素。

4.3 JSON_EXTRACT
JSON_EXTRACT函數(shù)用于提取JSON數(shù)據(jù)中的值。以下是一個(gè)示例:
SELECT JSON_EXTRACT('{"name": "John", "age": 30}', '$.name') AS name;上述示例從JSON數(shù)據(jù)中提取了name屬性的值。

以上只是最基本的用法,關(guān)于MySQL操作JSON數(shù)據(jù)類型的函數(shù)還有很多高級(jí)用法,等用到的時(shí)候再學(xué)。
本文完結(jié)!
到此這篇關(guān)于MySQL如何查詢和篩選存儲(chǔ)的JSON數(shù)據(jù)的文章就介紹到這了,更多相關(guān)mysql查詢JSON數(shù)據(jù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Mysql中json類型數(shù)據(jù)查詢問(wèn)題
- mysql中json基礎(chǔ)查詢?cè)斀?附圖文)
- Mysql中json類型數(shù)據(jù)查詢的實(shí)現(xiàn)
- Mysql中json類型查詢方法示例
- MySQL實(shí)現(xiàn)查詢處理JSON數(shù)據(jù)的示例詳解
- Mysql如何對(duì)json數(shù)據(jù)進(jìn)行查詢及修改
- Mysql內(nèi)儲(chǔ)存JSON字符串根據(jù)條件進(jìn)行查詢
- Mysql 直接查詢存儲(chǔ)的Json字符串中的數(shù)據(jù)
- Mysql將查詢結(jié)果集轉(zhuǎn)換為JSON數(shù)據(jù)的實(shí)例代碼
- MySQL中查詢json格式的字段實(shí)例詳解
- MySQL中查詢JSON字段的實(shí)現(xiàn)示例
相關(guān)文章
mysql查詢上下級(jí)機(jī)構(gòu)的方法實(shí)例
大家應(yīng)該都知道表里有上下級(jí)機(jī)構(gòu)的,下面這篇文章主要給大家介紹了關(guān)于mysql查詢上下級(jí)機(jī)構(gòu)的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-04-04
CentOS 7搭建MySQL主從復(fù)制集群的全過(guò)程
在實(shí)際生產(chǎn)環(huán)境中,單個(gè) MySQL 實(shí)例存在單點(diǎn)故障和性能瓶頸,本文將以 CentOS 7 為例,手把手教你搭建一套標(biāo)準(zhǔn)的 MySQL 主從復(fù)制集群(Master-Slave Replication),實(shí)現(xiàn)讀寫(xiě)分離與數(shù)據(jù)熱備,需要的朋友可以參考下2026-05-05
MySQL主從復(fù)制的原理圖解及Java語(yǔ)言示例使用
這篇文章主要介紹了MySQL的主從復(fù)制原理詳細(xì)分析,讀寫(xiě)分離是基于主從復(fù)制來(lái)實(shí)現(xiàn)的。文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-08-08
MYSQL建立外鍵失敗幾種情況記錄Can''t create table不能創(chuàng)建表
當(dāng)你試圖在mysql中創(chuàng)建一個(gè)外鍵的時(shí)候,這個(gè)出錯(cuò)會(huì)經(jīng)常發(fā)生,這是非常令人沮喪的。2011-08-08
最全的mysql 5.7.13 安裝配置方法圖文教程(linux) 強(qiáng)烈推薦!
這篇文章主要為大家詳細(xì)介紹了linux下mysql 5.7.13 安裝配置方法圖文教程,感興趣的小伙伴們可以參考一下2016-08-08
MySQL之權(quán)限以及設(shè)計(jì)數(shù)據(jù)庫(kù)案例講解
這篇文章主要介紹了MySQL之權(quán)限以及設(shè)計(jì)數(shù)據(jù)庫(kù)案例講解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-08-08

