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

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

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

1. JSON對(duì)象

{
  "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取單個(gè)值

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的值:去掉引號(hào)

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

-- 提取指定key的值:去掉引號(hào)
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ù)組所有對(duì)象

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

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

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

2.1.1 提取所有元素

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

-- 提取所有元素:以表格形式展示每個(gè)對(duì)象的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的值用逗號(hào)分隔

-- 提取所有元素:指定key的值用逗號(hào)分隔
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的值:去掉引號(hào)
SELECT JSON_UNQUOTE(JSON_EXTRACT(@json, '$."name"')) AS extracted_name;

-- ----------------------------------------------------------------------
-- 定義變量json_array
SET @json_array:='[{"age":11,"name":"張三"},{"age":12,"name":"李四"}]';
-- 提取所有元素:以表格形式展示每個(gè)對(duì)象的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的值用逗號(hào)分隔
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;

下面附一個(gè)具體的例子

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

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的愛(ài)好列表
SELECT JSON_EXTRACT(profile, '$.hobbies') AS hobbies FROM users WHERE name = 'Bob';

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

-- 移除Alice的愛(ài)好列表中的“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對(duì)象和數(shù)組的文章就介紹到這了,更多相關(guān)Mysql提取JSON對(duì)象和數(shù)組內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

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

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

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

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

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

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

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

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

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

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

    MySQL中正式表達(dá)式通常被用來(lái)檢索或替換符合某個(gè)模式的文本內(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)中一個(gè)極為關(guān)鍵且常被開(kāi)發(fā)者誤解的嚴(yán)格校驗(yàn)機(jī)制,這篇文章主要介紹了MySQL為什么要ONLY_FULL_GROUP_BY嚴(yán)格化的相關(guān)資料,需要的朋友可以參考下
    2026-04-04
  • 查看當(dāng)前mysql使用頻繁的sql語(yǔ)句(詳解)

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

    下面小編就為大家?guī)?lái)一篇查看當(dāng)前mysql使用頻繁的sql語(yǔ)句(詳解)。小編覺(jué)的挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-03-03
  • MySQL中in與exists的使用及區(qū)別介紹

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

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

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

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

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

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

最新評(píng)論

永丰县| 柳江县| 四子王旗| 沛县| 凤山市| 新和县| 政和县| 崇义县| 清河县| 广灵县| 伽师县| 柳州市| 阜城县| 师宗县| 新和县| 宜黄县| 全南县| 将乐县| 宜川县| 特克斯县| 龙陵县| 伊川县| 建始县| 依安县| 铁岭县| 扶绥县| 靖安县| 辽宁省| 卓尼县| 郧西县| 集安市| 咸宁市| 英超| 临夏市| 肇东市| 苗栗县| 安乡县| 北碚区| 斗六市| 榆社县| 专栏|