Mysql——》提取JSON對象和數組

推薦鏈接:
????總結——》【Java】
????總結——》【Mysql】
????總結——》【Redis】
????總結——》【Kafka】
????總結——》【Spring】
????總結——》【SpringBoot】
????總結——》【MyBatis、MyBatis-Plus】
????總結——》【Linux】
????總結——》【MongoDB】
????總結——》【Elasticsearch】

Mysql——》提取JSON對象和數組

  • 1. JSON對象
    • 1.1 提取JSON的key
    • 1.2 提取JSON的值
      • 1.2.1 提取所有key的值
      • 1.2.2 提取指定key的值
      • 1.2.3 提取指定key的值:去掉引號
  • 2. JSON數組
    • 2.1 提取JSON數組的值
      • 2.1.1 提取所有元素
      • 2.1.2 提取所有元素:指定key的值
      • 2.1.3 提取所有元素:指定key的值用逗號分隔
      • 2.1.4 提取指定索引的元素
  • 3. 總結

1. JSON對象

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

1.1 提取JSON的key

JSON_KEYS函數用于提取JSON的key值

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

1.2 提取JSON的值

JSON_EXTRACT函數用于提取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函數對單個結果進行去引號操作

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

2. JSON數組

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

2.1 提取JSON數組的值

$[*] :JSON數組所有對象

$[0] :JSON數組第一個對象

$[*].key :JOSN數組所有對象,對應key的值

$[0].key :JSON數組第一個對象對應key的值

2.1.1 提取所有元素

JSON_TABLE函數將 JSON 數組展開成關系表的形式,方便獲取所有元素。

-- 提取所有元素:以表格形式展示每個對象的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. 總結

-- 定義變量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;

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/918961.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/918961.shtml
英文地址,請注明出處:http://en.pswp.cn/news/918961.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

JSON值包含引號

目錄背景代碼正則說明背景 很多時候,在無法使用Gson等能處理非標準化JSON的工具時,需要對JSON值中的JSON限定符進行轉義,使用正則比較方便,以對JSON值中的引號做轉義為例 代碼 private static String escapeUnescapedQuotes(St…

後端開發Python篇

書接上回:後端開發技術教學(五) 魔術方法、類、序列化-CSDN博客 必要資源: trae中下載網址: TRAE - The Real AI Engineer phpStudy 2018 : phpStudy - Windows 一鍵部署 PHP 開發環境 小皮出品 python解釋器:Welcome to Python.org 前言…

Python匿名函數的具體用法

引言 在Python編程中,匿名函數(即lambda函數)是一種簡潔定義小型函數的方式。它無需通過def關鍵字命名,適用于需要臨時函數或作為高階函數參數的場景。本文將詳細解析lambda函數的語法、應用場景及最佳實踐。 定義與語法 官方定義…

ARM芯片架構之CoreSight SoC-400 組件介紹

CoreSight SoC-400 組件介紹1. Debug Access Port (DAP) 功能:DAP 是外部調試器與 SoC 內部調試基礎設施的接口核心。它將調試端口(JTAG-DP 或 SW-DP)與多個訪問端口(AP)連接起來,使調試器能夠訪問內存、外…

SynAdapt:通過合成連續思維鏈實現大語言模型的自適應推理

摘要:盡管鏈式思維(CoT)推理能提升模型性能,卻因離散 CoT 標記(DCoT)的生成而帶來顯著時間開銷。連續 CoT(CCoT)是更高效的替代方案,但現有方法受限于間接微調、對齊不足…

計算機畢設不知道選什么題目?基于Spark的糖尿病數據分析系統【Hadoop+Spark+python】

精彩專欄推薦訂閱:在 下方專欄👇🏻👇🏻👇🏻👇🏻 💖🔥作者主頁:計算機畢設木哥🔥 💖 文章目錄 一、項目介紹選…

【Javaweb學習|黑馬筆記|Day1】初識,入門網頁,HTML-CSS|常見的標簽和樣式|標題排版和樣式、正文排版和樣式

【DAY1】 從今天開始Javaweb的學習了,學了Javaweb基礎知識,HTML CSS常見的標簽和樣式 文章目錄【DAY1】HTML-CSS1)初識2)入門3)常見標簽和樣式標題標題排版標題樣式正文正文排版正文樣式整體布局HTML-CSS 1&#xff…

企業現金流綜合分析報告

企業現金流綜合分析報告 執行摘要 本報告整合了基于同一現金流預測數據的多層級分析,包括基礎、詳細、高級和超詳細視角,旨在為企業提供從日常管理到戰略決策的全面現金流洞察。企業預計年度收入4080萬英鎊,毛利率穩定在36%,EBITDA率約10%,顯示基本業務模式健康且盈利能…

StarRocks優化統計分析

業務需求:統計廣告數據,生成流量漏斗,查看廣告曝光、點擊效果。 StarRocks原表結構: CREATE TABLE ad_events ( event_time DATETIME NOT NULL COMMENT 時間, event_time_hour DATETIME NOT NULL COMMENT 時間(分、秒為0), even…

k8s單master部署

一、部署 1、初始化 1.1、主機準備 1.2、防火墻與上下文 iptables -t nat -F iptables -t filter -F systemctl disable --now firewalldsetenforce 0 sed -i s/SELINUXenforcing/SELINUXdisabled/ /etc/selinux/config 1.3、免密登錄 ssh-keygenssh-copy-id 192.168.11…

【大模型微調系列-03】 大模型數學基礎直觀入門

【大模型微調系列-03】 大模型數學基礎直觀入門🎯 本章目標:不要害怕數學!我們將通過可視化和簡單代碼,讓你像"看電影"一樣理解深度學習的數學原理。記住,深度學習的數學其實就是"讓計算機學會調整參數…

科技賦能千年養生丨七彩喜艾灸機器人,讓傳統智慧觸手可及

傳統艾灸養生效果顯著,卻常因煙霧繚繞、操作繁瑣、安全隱患等問題令人望而卻步。如今,七彩喜艾灸機器人以創新科技破解痛點,將千年艾灸智慧與現代智能深度融合,讓養生變得簡單、安全、高效,為大眾開啟“無負擔”的艾灸…

【web站點安全開發】任務2:HTML5核心特性與元素詳解

目錄 一、HTML元素 1、行內元素、塊元素、行內塊元素 2、替換元素和非替換元素 二、HTML5新增特性 1、語義化標簽:提升頁面結構化與可讀性 2、原生多媒體支持:擺脫插件依賴 3、表單增強:提升交互與驗證能力 4、Canvas 與 WebGL&#…

Notepad++插件開發實戰:從零打造效率工具

通過定制插件提升文本處理效率300%?? 一、插件開發核心價值?解決效率瓶頸的終極方案??定制化工作流?深度集成編輯器功能(文檔訪問、選區操作、語法解析)自動化重復操作(批量替換、格式轉換、數據提取)案例:法律文…

微服務單元測試組件(附源碼)

背景 微服務的調試,哪怕是簡單問題,需要啟動9個服務,ui/nginx 網關 應用 auth 基礎數據服務 redis nacos 平臺服務 ,效率差得不行,準備開發一個支持微服務環境的單元測試組件, 組件解決3個問題&#xff1a…

【LeetCode 熱題 100】55. 跳躍游戲

Problem: 55. 跳躍游戲 給你一個非負整數數組 nums ,你最初位于數組的 第一個下標 。數組中的每個元素代表你在該位置可以跳躍的最大長度。 判斷你是否能夠到達最后一個下標,如果可以,返回 true ;否則,返回 false 。 文…

Java-JVM是什么JVM的類加載機制

一.JVM是什么1.jvm是java虛擬機,是java程序運行的基礎環境2.jvm運行的是java源代碼經過編譯后的class文件,這些class文件經過jvm負責解釋或即時編譯為對應平臺的機器碼并執行3.class文件也可以通過其他【jvm languages】經過編譯后得到,例如s…

做亞馬遜廣告,有哪些提高效率的工具

"為什么每天花3小時調整廣告卻看不到效果?""如何避免高轉化關鍵詞被競爭對手搶走?""為什么手動調整預算總是慢市場半拍?""ACOS居高不下真的是關鍵詞選錯了嗎?""有沒有工具能真正實現…

研究學習3DGS的順序

6 個核心基礎模塊 序號模塊說明推薦學習順序1📷 三維計算機視覺基礎建立對3D場景、點云、體積的空間理解?第一個2🧮 CT成像原理與圖像表示理解CT圖像本質、斷層數據、密度單位?并行進行3🟡 NeRF與3D Gaussian Splatting原理掌握點云/高斯場…

期刊分類計算機領域會議

該圖片已上傳圖床,需要可自行下載: https://youke1.picui.cn/s1/2025/08/15/689f1e3553930.png 參考鏈接: 【干貨】最全學術期刊級別分類講解_嗶哩嗶哩_bilibili