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

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 值,即使它是標(biāo)量值(如字符串或數(shù)字)。如果需要將結(jié)果轉(zhuǎn)換為標(biāo)量類型,可以使用 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)文章

  • MySQL數(shù)據(jù)庫基礎(chǔ)入門之常用命令小結(jié)

    MySQL數(shù)據(jù)庫基礎(chǔ)入門之常用命令小結(jié)

    這篇文章主要介紹了MySQL數(shù)據(jù)庫基礎(chǔ)入門之常用命令,結(jié)合實例形式分析了MySQL數(shù)據(jù)庫管理、備份、日志常用操作命令與使用注意事項,需要的朋友可以參考下
    2020-05-05
  • ubuntu20安裝配置mysql8.0.23步驟詳解

    ubuntu20安裝配置mysql8.0.23步驟詳解

    這篇文章主要為大家介紹了ubuntu20安裝配置mysql8.0.23步驟詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-05-05
  • mysql8.0 JSON_CONTAINS的使用說明

    mysql8.0 JSON_CONTAINS的使用說明

    這篇文章主要介紹了mysql8.0 JSON_CONTAINS的使用說明,具有很好的參考價值,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • pymysql.err.DataError:(1264, ")異常的有效解決方法(最新推薦)

    pymysql.err.DataError:(1264, ")異常的有效解決方法(最新推薦)

    遇到pymysql.err.DataError錯誤時,錯誤代碼1264通常指的是MySQL數(shù)據(jù)庫中的Out of range value for column錯誤,這意味著你嘗試插入或更新的數(shù)據(jù)超過了對應(yīng)數(shù)據(jù)庫列所允許的范圍,這篇文章主要介紹了pymysql.err.DataError:(1264, ")異常的有效問題,需要的朋友可以參考下
    2024-05-05
  • MySQL 數(shù)據(jù)庫的監(jiān)控方式小結(jié)

    MySQL 數(shù)據(jù)庫的監(jiān)控方式小結(jié)

    本文主要介紹了MySQL 數(shù)據(jù)庫的監(jiān)控方式小結(jié),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • 從入門到精通MySQL聯(lián)合查詢

    從入門到精通MySQL聯(lián)合查詢

    這篇文章主要介紹了從入門到精通MySQL聯(lián)合查詢,本文通過實例代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2025-07-07
  • Mysql大表修改字段兩種解決方式

    Mysql大表修改字段兩種解決方式

    這篇文章主要給大家介紹了關(guān)于Mysql大表修改字段的兩種解決方式,文中介紹了在處理平臺幣訂單表字段類型修改時遇到的問題及解決方案,需要的朋友可以參考下
    2024-11-11
  • mysql數(shù)據(jù)庫應(yīng)付大流量網(wǎng)站的的3種架構(gòu)擴展方式介紹

    mysql數(shù)據(jù)庫應(yīng)付大流量網(wǎng)站的的3種架構(gòu)擴展方式介紹

    這篇文章主要介紹了mysql數(shù)據(jù)庫應(yīng)付大流量網(wǎng)站的的3種架構(gòu)擴展方式介紹,它們分別是讀寫分離、垂直分區(qū)、水平分區(qū),本文分別對它們做了講解,需要的朋友可以參考下
    2014-07-07
  • MySQL導(dǎo)入sql文件的三種方法小結(jié)

    MySQL導(dǎo)入sql文件的三種方法小結(jié)

    本文主要介紹了MySQL導(dǎo)入sql文件的三種方法小結(jié),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • windows系統(tǒng)mysql壓縮包版本安裝過程

    windows系統(tǒng)mysql壓縮包版本安裝過程

    這篇文章主要介紹了windows系統(tǒng)mysql壓縮包版本安裝過程,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-03-03

最新評論

拉萨市| 嘉祥县| 静乐县| 竹溪县| 岗巴县| 泰宁县| 周宁县| 疏附县| 夏河县| 瓦房店市| 湛江市| 项城市| 桃江县| 古浪县| 武乡县| 株洲县| 和静县| 威宁| 旅游| 睢宁县| 怀宁县| 乳山市| 万年县| 宝应县| 镶黄旗| 碌曲县| 灵宝市| 体育| 洱源县| 襄城县| 阿合奇县| 孟州市| 北川| 五莲县| 湟中县| 清流县| 新龙县| 浮山县| 闵行区| 富宁县| 吕梁市|