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

Mysql提取JSON對象和數(shù)組的方法示例代碼

 更新時間:2025年09月24日 09:07:11   作者:小仙。  
在MySQL中,JSON數(shù)據(jù)類型是一種特殊的數(shù)據(jù)類型,它可以存儲JSON格式的數(shù)據(jù),下面這篇文章主要介紹了Mysql提取JSON對象和數(shù)組的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下

1. JSON對象

{
  "age": 11,
  "name": "張三"
}
-- 定義變量json
set @json:='{"age":11,"name":"張三"}';

1.1 提取JSON的key

JSON_KEYS函數(shù)用于提取JSON的key值

-- 提取所有key
SELECT JSON_KEYS(@json) AS `keys`;

1.2 提取JSON的值

JSON_EXTRACT函數(shù)用于提取JSON的值

  • $.*取所有值
  • $.key取單個值

1.2.1 提取所有key的值

-- 提取所有key的值
SELECT JSON_EXTRACT(@json, '$.*') AS `values`;

1.2.2 提取指定key的值

-- 提取指定key的值
SELECT JSON_EXTRACT(@json, '$."name"') AS extracted_name;

1.2.3 提取指定key的值:去掉引號

JSON_UNQUOTE函數(shù)對單個結(jié)果進(jìn)行去引號操作

-- 提取指定key的值:去掉引號
SELECT JSON_UNQUOTE(JSON_EXTRACT(@json, '$."name"')) AS extracted_name;

2. JSON數(shù)組

[
    {
        "age": 11,
        "name": "張三"
    },
    {
        "age": 12,
        "name": "李四"
    }
]
-- 定義變量json_array
SET @json_array:='[{"age":11,"name":"張三"},{"age":12,"name":"李四"}]';

2.1 提取JSON數(shù)組的值

$[*] :JSON數(shù)組所有對象

$[0] :JSON數(shù)組第一個對象

$[*].key :JOSN數(shù)組所有對象,對應(yīng)key的值

$[0].key :JSON數(shù)組第一個對象對應(yīng)key的值

2.1.1 提取所有元素

JSON_TABLE函數(shù)將 JSON 數(shù)組展開成關(guān)系表的形式,方便獲取所有元素。

-- 提取所有元素:以表格形式展示每個對象的age和name字段
SELECT element.*
FROM 
JSON_TABLE(
    @json_array,
    '$[*]' COLUMNS (
        age INT PATH '$."age"',
        name VARCHAR(255) PATH '$."name"'
    )
) AS element;

2.1.2 提取所有元素:指定key的值

-- 提取所有元素:指定key的值
SELECT JSON_UNQUOTE(JSON_EXTRACT(@json_array, '$[*]."name"')) AS extracted_name;

2.1.3 提取所有元素:指定key的值用逗號分隔

-- 提取所有元素:指定key的值用逗號分隔
SELECT GROUP_CONCAT(names.name SEPARATOR ',') AS combined_names
FROM 
JSON_TABLE(
    @json_array,
    '$[*]' COLUMNS (
        name VARCHAR(255) PATH '$."name"'
    )
) AS names;

2.1.4 提取指定索引的元素

-- 提取指定索引的元素
SELECT JSON_EXTRACT(@json_array, '$[0]') AS element_0;
-- 提取指定索引的元素中指定key的值
SELECT JSON_EXTRACT(@json_array, '$[0]."name"') AS name_0;

3. 總結(jié)

-- 定義變量json
set @json:='{"age":11,"name":"張三"}';
-- 提取JSON的key
SELECT JSON_KEYS(@json) AS `keys`;
-- 提取所有key的值
SELECT JSON_EXTRACT(@json, '$.*') AS `values`;
-- 提取指定key的值
SELECT JSON_EXTRACT(@json, '$."name"') AS extracted_name;
-- 提取指定key的值:去掉引號
SELECT JSON_UNQUOTE(JSON_EXTRACT(@json, '$."name"')) AS extracted_name;

-- ----------------------------------------------------------------------
-- 定義變量json_array
SET @json_array:='[{"age":11,"name":"張三"},{"age":12,"name":"李四"}]';
-- 提取所有元素:以表格形式展示每個對象的age和name字段
SELECT element.*
FROM 
JSON_TABLE(
    @json_array,
    '$[*]' COLUMNS (
        age INT PATH '$."age"',
        name VARCHAR(255) PATH '$."name"'
    )
) AS element;
-- 提取所有元素:指定key的值
SELECT JSON_UNQUOTE(JSON_EXTRACT(@json_array, '$[*]."name"')) AS extracted_name;
-- 提取所有元素:指定key的值用逗號分隔
SELECT GROUP_CONCAT(names.name SEPARATOR ',') AS combined_names
FROM 
JSON_TABLE(
    @json_array,
    '$[*]' COLUMNS (
        name VARCHAR(255) PATH '$."name"'
    )
) AS names;
-- 提取指定索引的元素
SELECT JSON_EXTRACT(@json_array, '$[0]') AS element_0;
-- 提取指定索引的元素中指定key的值
SELECT JSON_EXTRACT(@json_array, '$[0]."name"') AS name_0;

下面附一個具體的例子

假設(shè)你有一個名為users的表,其中有一個名為profile的列,該列存儲了用戶的JSON格式的個人資料:

CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100),
    profile JSON
);

INSERT INTO users (name, profile) VALUES
('Alice', '{"age": 30, "hobbies": ["reading", "hiking", "coding"]}'),
('Bob', '{"age": 25, "hobbies": ["gaming", "cycling"]}'),
('Carol', '{"age": 28, "hobbies": ["painting", "traveling"]}');

-- 獲取Alice的年齡
SELECT JSON_EXTRACT(profile, '$.age') AS age FROM users WHERE name = 'Alice';

-- 獲取Bob的愛好列表
SELECT JSON_EXTRACT(profile, '$.hobbies') AS hobbies FROM users WHERE name = 'Bob';

-- 給Carol添加一個新的愛好
UPDATE users
SET profile = JSON_INSERT(profile, '$.hobbies[2]', 'swimming')
WHERE name = 'Carol';

-- 移除Alice的愛好列表中的“coding”
UPDATE users
SET profile = JSON_REMOVE(profile, '$.hobbies[2]')
WHERE name = 'Alice';

-- 檢查JSON是否有效
SELECT JSON_VALID(profile) AS is_valid FROM users;

總結(jié) 

到此這篇關(guān)于Mysql提取JSON對象和數(shù)組的文章就介紹到這了,更多相關(guān)Mysql提取JSON對象和數(shù)組內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • mysql 生成連續(xù)日期及變量賦值

    mysql 生成連續(xù)日期及變量賦值

    這篇文章主要介紹了mysql 生成連續(xù)日期及變量賦值的相關(guān)資料,分享內(nèi)容及代碼詳細(xì),具有一的參考價值,需要的小伙伴可以參考一下
    2022-03-03
  • MySQL在Linux系統(tǒng)上的完整安裝與配置流程

    MySQL在Linux系統(tǒng)上的完整安裝與配置流程

    文章詳細(xì)介紹了在Linux系統(tǒng)中安裝和卸載MySQL或MariaDB的過程,包括切換到root用戶、檢查和卸載包、備份數(shù)據(jù)、配置源、安裝服務(wù)端和客戶端、設(shè)置密碼、檢查服務(wù)狀態(tài)以及常見問題處理等步驟,需要的朋友可以參考下
    2026-03-03
  • Navicat查詢結(jié)果不能修改的原因及解決方法

    Navicat查詢結(jié)果不能修改的原因及解決方法

    下面小編就為大家?guī)硪黄狽avicat查詢結(jié)果不能修改的原因及解決方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-12-12
  • 寶塔服務(wù)器的mysql數(shù)據(jù)庫自動備份到gitee項目

    寶塔服務(wù)器的mysql數(shù)據(jù)庫自動備份到gitee項目

    文章介紹了一個開源腳本,用于自動備份寶塔服務(wù)器上的所有數(shù)據(jù)庫,并將備份文件上傳到Gitee項目中,腳本支持多服務(wù)器數(shù)據(jù)信息備份,并且可以定時執(zhí)行備份任務(wù)
    2025-12-12
  • MySQL正則表達(dá)式匹配查詢(含實例)

    MySQL正則表達(dá)式匹配查詢(含實例)

    MySQL中正式表達(dá)式通常被用來檢索或替換符合某個模式的文本內(nèi)容,根據(jù)指定的匹配模式匹配文中符合要求的特殊字符串,下面這篇文章主要給大家介紹了關(guān)于MySQL正則表達(dá)式匹配查詢的相關(guān)資料,需要的朋友可以參考下
    2022-09-09
  • 一文詳解MySQL為什么要ONLY_FULL_GROUP_BY嚴(yán)格化

    一文詳解MySQL為什么要ONLY_FULL_GROUP_BY嚴(yán)格化

    MySQL中的ONLY_FULL_GROUP_BY是SQL標(biāo)準(zhǔn)模式(SQL_MODE)中一個極為關(guān)鍵且常被開發(fā)者誤解的嚴(yán)格校驗機(jī)制,這篇文章主要介紹了MySQL為什么要ONLY_FULL_GROUP_BY嚴(yán)格化的相關(guān)資料,需要的朋友可以參考下
    2026-04-04
  • 查看當(dāng)前mysql使用頻繁的sql語句(詳解)

    查看當(dāng)前mysql使用頻繁的sql語句(詳解)

    下面小編就為大家?guī)硪黄榭串?dāng)前mysql使用頻繁的sql語句(詳解)。小編覺的挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-03-03
  • MySQL中in與exists的使用及區(qū)別介紹

    MySQL中in與exists的使用及區(qū)別介紹

    這篇文章主要介紹了MySQL中in與exists的使用及區(qū)別介紹,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-12-12
  • mysql?子查詢的概述和分類及單行子查詢功能實現(xiàn)

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

    本文詳細(xì)介紹了MySQL的子查詢概念和應(yīng)用,解釋了子查詢是在主查詢中嵌套另一個查詢,包括外查詢和內(nèi)查詢,并從多個角度進(jìn)行分類,文章還深入探討了子查詢的編寫技巧和使用場景,對于學(xué)習(xí)和應(yīng)用MySQL的人來說,這是一篇非常有價值的指南
    2024-10-10
  • MySQL中一條查詢SQL語句的完整執(zhí)行流程

    MySQL中一條查詢SQL語句的完整執(zhí)行流程

    通常我們在使用MySQL時,我們看到的只是輸入一條語句,返回一個結(jié)果,卻不知道這條語句在MySQL內(nèi)部的執(zhí)行過程,這篇文章主要給大家介紹了關(guān)于MySQL中一條查詢SQL語句的完整執(zhí)行流程,需要的朋友可以參考下
    2024-05-05

最新評論

七台河市| 临洮县| 澎湖县| 万载县| 上饶市| 灯塔市| 叙永县| 太原市| 福安市| 会昌县| 昌图县| 卓资县| 金湖县| 舟山市| 宣武区| 阳泉市| 稻城县| 环江| 安顺市| 福建省| 富民县| 崇明县| 永城市| 乌审旗| 金山区| 靖州| 祁连县| 南陵县| 华安县| 德令哈市| 顺昌县| 精河县| 达拉特旗| 曲松县| 渭源县| 丰宁| 桑日县| 林西县| 通州区| 上林县| 长春市|