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

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

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

前言

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

基本語法

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

路徑表達式

路徑表達式使用類似于 JavaScript 的對象和數(shù)組訪問語法:

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

示例

示例 1: 提取簡單值

假設(shè)有一個表 users,其中有一個字段 data 存儲了用戶的 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() 提取每個用戶的名字:

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

輸出結(jié)果:

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

示例 2: 提取嵌套值

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

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ù)中包含一個數(shù)組:

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

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

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

輸出結(jié)果:

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

注意事項

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

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

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

總結(jié) 

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

相關(guān)文章

  • 銀河麒麟V10安裝MySQL5.7的詳細過程

    銀河麒麟V10安裝MySQL5.7的詳細過程

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

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

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

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

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

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

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

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

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

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

    我們首先討論索引,因為它是加快查詢的最重要的工具。當然還有其他加快查詢的技術(shù),但是最有效的莫過于恰當?shù)厥褂盟饕?。下面我們就來介紹索引是什么、它怎樣改善查詢性能、索引在什么情況下可能會降低性能,以及怎樣為表選擇索引。
    2015-12-12
  • Mysql聯(lián)表update數(shù)據(jù)的示例詳解

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

    這篇文章主要介紹了Mysql聯(lián)表update數(shù)據(jù)的示例詳解,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    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是否運行的命令寫法,具體內(nèi)容詳情大家通過本文學(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

最新評論