欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL數(shù)據(jù)庫(kù)函數(shù)之JSON_EXTRACT示例代碼

 更新時(shí)間:2025年02月12日 09:28:59   作者:白蘿卜弟弟  
這篇文章主要介紹了MySQL數(shù)據(jù)庫(kù)函數(shù)之JSON_EXTRACT的相關(guān)資料,JSON_EXTRACT()函數(shù)用于從JSON文檔中提取值,支持對(duì)象屬性、數(shù)組元素和嵌套結(jié)構(gòu)的訪問(wèn),示例展示了如何提取簡(jiǎn)單值、嵌套值和數(shù)組中的值,需要的朋友可以參考下

前言

在 MySQL 中,JSON_EXTRACT() 函數(shù)用于從 JSON 文檔中提取一個(gè)或多個(gè)值。這個(gè)函數(shù)非常有用,特別是在處理存儲(chǔ)在 JSON 格式中的復(fù)雜數(shù)據(jù)時(shí)。下面是一些關(guān)于如何使用 JSON_EXTRACT() 的詳細(xì)說(shuō)明和示例。

基本語(yǔ)法

JSON_EXTRACT(json_doc, path [, path] ...)
  • json_doc: 要從中提取值的 JSON 文檔。
  • path: 一個(gè)或多個(gè)路徑表達(dá)式,用于指定要提取的值的位置。路徑表達(dá)式以 $ 開頭,表示 JSON 文檔的根。

路徑表達(dá)式

路徑表達(dá)式使用類似于 JavaScript 的對(duì)象和數(shù)組訪問(wèn)語(yǔ)法:

  • 對(duì)象屬性:使用點(diǎn) . 訪問(wèn),例如 $.name。
  • 數(shù)組元素:使用方括號(hào) [] 訪問(wèn),例如 $[0]。
  • 嵌套結(jié)構(gòu):可以組合使用點(diǎn)和方括號(hào),例如 $.address.street 或 $.items[0].name。

示例

示例 1: 提取簡(jiǎn)單值

假設(shè)有一個(gè)表 users,其中有一個(gè)字段 data 存儲(chǔ)了用戶的 JSON 數(shù)據(jù):

CREATE TABLE users (
    id INT PRIMARY KEY,
    data JSON
);

INSERT INTO users (id, data) VALUES
(1, '{"name": "Alice", "age": 30, "city": "New York"}'),
(2, '{"name": "Bob", "age": 25, "city": "Los Angeles"}');

我們可以使用 JSON_EXTRACT() 提取每個(gè)用戶的名字:

SELECT id, JSON_EXTRACT(data, '$.name') AS name
FROM users;

輸出結(jié)果:

+----+--------+
| id | name   |
+----+--------+
| 1  | "Alice"|
| 2  | "Bob"  |
+----+--------+

示例 2: 提取嵌套值

假設(shè) JSON 數(shù)據(jù)中包含嵌套的對(duì)象:

INSERT INTO users (id, data) VALUES
(3, '{"name": "Charlie", "age": 35, "address": {"street": "123 Main St", "city": "Chicago"}}');

我們可以提取嵌套的街道地址:

SELECT id, JSON_EXTRACT(data, '$.address.street') AS street
FROM users;

輸出結(jié)果:

+----+-----------------+
| id | street          |
+----+-----------------+
| 1  | NULL            |
| 2  | NULL            |
| 3  | "123 Main St"   |
+----+-----------------+

示例 3: 提取數(shù)組中的值

假設(shè) JSON 數(shù)據(jù)中包含一個(gè)數(shù)組:

INSERT INTO users (id, data) VALUES
(4, '{"name": "David", "age": 40, "hobbies": ["reading", "traveling", "cooking"]}');

我們可以提取數(shù)組中的第一個(gè)愛(ài)好:

SELECT id, JSON_EXTRACT(data, '$.hobbies[0]') AS hobby
FROM users;

輸出結(jié)果:

+----+----------+
| id | hobby    |
+----+----------+
| 1  | NULL     |
| 2  | NULL     |
| 3  | NULL     |
| 4  | "reading"|
+----+----------+

注意事項(xiàng)

  • JSON_EXTRACT() 返回的結(jié)果是一個(gè) JSON 值,即使它是標(biāo)量值(如字符串或數(shù)字)。如果需要將結(jié)果轉(zhuǎn)換為標(biāo)量類型,可以使用 CAST 函數(shù)。例如:

    SELECT id, CAST(JSON_EXTRACT(data, '$.name') AS CHAR) AS name
    FROM users;
    
  • 如果路徑表達(dá)式指向的值不存在,JSON_EXTRACT() 將返回 NULL。

  • 路徑表達(dá)式中的索引是從 0 開始的。

總結(jié) 

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

相關(guān)文章

  • 銀河麒麟V10安裝MySQL5.7的詳細(xì)過(guò)程

    銀河麒麟V10安裝MySQL5.7的詳細(xì)過(guò)程

    這篇文章主要介紹了銀河麒麟V10安裝MySQL5.7,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-05-05
  • 深入淺出講解MySQL的并行復(fù)制

    深入淺出講解MySQL的并行復(fù)制

    這篇文章主要給大家介紹了關(guān)于MySQL并行復(fù)制的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或使用mysql具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-08-08
  • mysql?子查詢的概述和分類及單行子查詢功能實(shí)現(xiàn)

    mysql?子查詢的概述和分類及單行子查詢功能實(shí)現(xiàn)

    本文詳細(xì)介紹了MySQL的子查詢概念和應(yīng)用,解釋了子查詢是在主查詢中嵌套另一個(gè)查詢,包括外查詢和內(nèi)查詢,并從多個(gè)角度進(jìn)行分類,文章還深入探討了子查詢的編寫技巧和使用場(chǎng)景,對(duì)于學(xué)習(xí)和應(yīng)用MySQL的人來(lái)說(shuō),這是一篇非常有價(jià)值的指南
    2024-10-10
  • MySQL進(jìn)行g(shù)roup by字段返回大量異常結(jié)果的問(wèn)題解決

    MySQL進(jìn)行g(shù)roup by字段返回大量異常結(jié)果的問(wèn)題解決

    本文主要介紹了MySQL進(jìn)行g(shù)roup by字段返回大量異常結(jié)果的問(wèn)題解決,文中通過(guò)代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-05-05
  • Mysql關(guān)于進(jìn)程中的死鎖和解除鎖問(wèn)題

    Mysql關(guān)于進(jìn)程中的死鎖和解除鎖問(wèn)題

    Mysql 經(jīng)常會(huì)遇到語(yǔ)句或者存儲(chǔ)過(guò)程長(zhǎng)時(shí)間沒(méi)有反應(yīng),大概率就是掛掉了,或者死鎖了,這篇文章主要介紹了Mysql關(guān)于進(jìn)程中的死鎖和解除鎖問(wèn)題,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-07-07
  • mysql性能優(yōu)化之索引優(yōu)化

    mysql性能優(yōu)化之索引優(yōu)化

    我們首先討論索引,因?yàn)樗羌涌觳樵兊淖钪匾墓ぞ?。?dāng)然還有其他加快查詢的技術(shù),但是最有效的莫過(guò)于恰當(dāng)?shù)厥褂盟饕?。下面我們就?lái)介紹索引是什么、它怎樣改善查詢性能、索引在什么情況下可能會(huì)降低性能,以及怎樣為表選擇索引。
    2015-12-12
  • Mysql聯(lián)表update數(shù)據(jù)的示例詳解

    Mysql聯(lián)表update數(shù)據(jù)的示例詳解

    這篇文章主要介紹了Mysql聯(lián)表update數(shù)據(jù)的示例詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-11-11
  • MySQL和Python交互的示例

    MySQL和Python交互的示例

    這篇文章主要介紹了MySQL和Python交互的示例,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下
    2021-03-03
  • ubuntu下apt-get安裝和徹底卸載mysql詳解

    ubuntu下apt-get安裝和徹底卸載mysql詳解

    本文給大家分享ubuntu下apt-get安裝和徹底卸載mysql的方法,文中提到了安裝mysq命令查看mysql是否運(yùn)行的命令寫法,具體內(nèi)容詳情大家通過(guò)本文學(xué)習(xí)吧
    2017-08-08
  • mysql導(dǎo)出表的字段和相關(guān)屬性的步驟方法

    mysql導(dǎo)出表的字段和相關(guān)屬性的步驟方法

    在本篇文章里小編給大家分享了關(guān)于mysql導(dǎo)出表的字段和相關(guān)屬性的步驟方法,有需要的朋友們跟著學(xué)習(xí)下。
    2019-01-01

最新評(píng)論