日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Mysql?直接查詢存儲的Json字符串中的數(shù)據(jù)

Mysql數(shù)據(jù)庫中Json字符串的查詢技巧與實戰(zhàn)應(yīng)用

隨著互聯(lián)網(wǎng)技術(shù)的快速發(fā)展,數(shù)據(jù)結(jié)構(gòu)變得越來越多樣化,JSON(JavaScript Object Notation)作為一種輕量級的數(shù)據(jù)交換格式,因其簡潔、清晰的層次結(jié)構(gòu),逐漸在各種應(yīng)用場景中得到了廣泛的應(yīng)用,Mysql數(shù)據(jù)庫從5.7版本開始,引入了對JSON數(shù)據(jù)類型的支持,使得我們可以直接在數(shù)據(jù)庫層面處理JSON數(shù)據(jù),本文將詳細介紹如何在Mysql中查詢存儲的Json字符串中的數(shù)據(jù)。

Mysql中Json類型的支持

1、創(chuàng)建Json類型的表

我們需要創(chuàng)建一個支持Json類型的表,以下是一個簡單的示例:

CREATE TABLE json_test (
  id int(11) NOT NULL AUTO_INCREMENT,
  json_data json DEFAULT NULL,
  PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

2、插入Json數(shù)據(jù)

插入Json數(shù)據(jù)時,可以直接插入符合Json格式的字符串:

INSERT INTO json_test (json_data) VALUES ('{"name": "張三", "age": 30, "email": "zhangsan@example.com"}');

查詢Json字符串中的數(shù)據(jù)

1、使用->和->>操作符

Mysql提供了兩種操作符來查詢Json字符串中的數(shù)據(jù):->和->>。

– ->操作符:用于獲取Json對象的某個字段,返回的是一個Json類型的值。

– ->>操作符:用于獲取Json對象的某個字段的值,返回的是一個非Json類型的值。

示例:

-- 使用->操作符
SELECT json_data->'$.name' AS name FROM json_test WHERE id = 1;
-- 使用->>操作符
SELECT json_data->>'$.name' AS name FROM json_test WHERE id = 1;

2、使用JSON_EXTRACT函數(shù)

JSON_EXTRACT函數(shù)可以從Json字符串中提取指定路徑的值,其用法如下:

JSON_EXTRACT(json_doc, path)

示例:

SELECT JSON_EXTRACT(json_data, '$.name') AS name FROM json_test WHERE id = 1;

3、使用JSON_VALUE函數(shù)

JSON_VALUE函數(shù)可以從Json字符串中提取指定路徑的值,并返回一個非Json類型的值。

JSON_VALUE(json_doc, path [ON EMPTY | ON ERROR])

示例:

SELECT JSON_VALUE(json_data, '$.name') AS name FROM json_test WHERE id = 1;

4、使用JSON_CONTAINS函數(shù)

JSON_CONTAINS函數(shù)用于判斷Json字符串中是否包含某個指定的值。

JSON_CONTAINS(json_doc, val [path])

示例:

SELECT * FROM json_test WHERE JSON_CONTAINS(json_data, '"zhangsan@example.com"', '$.email');

5、使用JSON_SEARCH函數(shù)

JSON_SEARCH函數(shù)用于在Json字符串中搜索指定值,并返回匹配路徑。

JSON_SEARCH(json_doc, 'one', search_str[, escape_char[, path]])

示例:

SELECT JSON_SEARCH(json_data, 'one', 'zhangsan@example.com', '$.email') FROM json_test WHERE id = 1;

實戰(zhàn)應(yīng)用

假設(shè)我們有一個用戶表,其中包含一個Json類型的字段用于存儲用戶的興趣愛好,現(xiàn)在我們需要查詢喜歡籃球的用戶信息。

1、創(chuàng)建用戶表

CREATE TABLE user (
  id int(11) NOT NULL AUTO_INCREMENT,
  name varchar(50) DEFAULT NULL,
  age int(11) DEFAULT NULL,
  hobbies json DEFAULT NULL,
  PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

2、插入用戶數(shù)據(jù)

INSERT INTO user (name, age, hobbies) VALUES ('張三', 30, '{"sports": ["籃球", "足球"], "music": ["流行", "古典"]}'), ('李四', 28, '{"sports": ["乒乓球", "羽毛球"], "music": ["搖滾", "民謠"]}'), ('王五', 32, '{"sports": ["籃球"], "music": ["爵士"]}');

3、查詢喜歡籃球的用戶信息

SELECT * FROM user WHERE JSON_CONTAINS(hobbies, '"籃球"', '$.sports');

通過上述查詢,我們可以找到喜歡籃球的用戶信息。

本文介紹了Mysql中查詢存儲的Json字符串中的數(shù)據(jù)的方法,包括使用操作符、函數(shù)以及實戰(zhàn)應(yīng)用,這些方法可以幫助我們更好地處理Json類型的數(shù)據(jù),提高數(shù)據(jù)庫查詢的靈活性和效率,在實際開發(fā)過程中,我們可以根據(jù)具體需求選擇合適的方法來實現(xiàn)對Json數(shù)據(jù)的查詢。


標題名稱:Mysql?直接查詢存儲的Json字符串中的數(shù)據(jù)
本文鏈接:http://www.5511xx.com/article/dpcseeh.html