MySQL 中的 JSON_UNQUOTE 與 JSON_EXTRACT 使用示例詳解
1. JSON_EXTRACT(json_doc, path)
功能:從 JSON 字符串中提取指定路徑的數(shù)據(jù)。
參數(shù):
json_doc:要解析的 JSON 字符串(例如 b.settings)。
path:JSON 路徑表達(dá)式,如 $.level 表示根對象下的 level 字段。
返回值:提取出的值,如果路徑不存在則返回 NULL。
JSON_EXTRACT('{"level": "critical"}', '$.level')
-- 返回: "critical"(帶引號(hào)的字符串)2. JSON_UNQUOTE(json_value)
功能:將 JSON 提取結(jié)果中的引號(hào)去掉,返回原始值。
適用場景:當(dāng)你需要直接操作提取的值而不是帶引號(hào)的字符串時(shí)使用。
JSON_UNQUOTE(JSON_EXTRACT('{"level": "critical"}', '$.level'))
-- 返回: critical(不帶引號(hào))實(shí)際應(yīng)用
{
"level": "critical",
"description": "High severity alert"
}
JSON_UNQUOTE(JSON_EXTRACT(b.settings, '$.level')) AS level
JSON_EXTRACT 提取出 "critical"。
JSON_UNQUOTE 將其轉(zhuǎn)換為 critical,便于后續(xù)處理或展示。處理嵌套 JSON 結(jié)構(gòu)
如果 JSON 數(shù)據(jù)中存在嵌套結(jié)構(gòu),可以通過擴(kuò)展路徑表達(dá)式來提取嵌套值。
示例 1:提取嵌套對象字段
JSON_UNQUOTE(JSON_EXTRACT(b.settings, '$.metadata.region')) AS region
假設(shè) b.settings 如下
{
"level": "critical",
"metadata": {
"env": "production",
"region": "us-west"
}
}
$.metadata.region 會(huì)提取 us-west示例 2:提取數(shù)組元素
JSON_UNQUOTE(JSON_EXTRACT(b.settings, '$.notifications[0].name')) AS first_notification
{
"notifications": [
{ "name": "email", "type": "email" },
{ "name": "slack", "type": "slack" }
]
}
$.notifications[0].name 會(huì)提取 email。
3. 提取數(shù)組中的所有值
如果你需要提取整個(gè)數(shù)組或其中的所有元素,可以使用通配符 *。
示例:提取 notifications 數(shù)組中所有 name 字段
SELECT JSON_UNQUOTE(JSON_EXTRACT(json_data, '$.notifications[*].name')) AS names;
輸出結(jié)果為:["email", "slack"](去除外層引號(hào)后仍然是字符串格式)。如果路徑不存在于 JSON 中,JSON_EXTRACT 會(huì)返回 NULL。
建議使用 IFNULL() 或 COALESCE() 來提供默認(rèn)值。
到此這篇關(guān)于MySQL 中的 JSON_UNQUOTE 與 JSON_EXTRACT 使用詳解的文章就介紹到這了,更多相關(guān)mysql json_unquote與json_extract使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- MySQL數(shù)據(jù)庫函數(shù)之JSON_EXTRACT示例代碼
- mysql中json_extract的具體使用
- mysql中json_extract的使用方法實(shí)例詳解
- Mysql使用函數(shù)json_extract處理Json類型數(shù)據(jù)的方法實(shí)例
- MySQL中json_extract函數(shù)說明及使用方式
- mysql 如何使用JSON_EXTRACT() 取json值
- 關(guān)于mysql中的json解析函數(shù)JSON_EXTRACT
- MySQL中json_extract()函數(shù)的使用實(shí)例
- MySql中的json_extract函數(shù)處理json字段詳情
相關(guān)文章
mysql自動(dòng)定時(shí)備份數(shù)據(jù)庫的最佳方法(windows服務(wù)器)
網(wǎng)上有很多關(guān)于window下Mysql自動(dòng)備份的方法,可是真的能用的也沒有幾個(gè),有些說的還非常的復(fù)雜,難以操作,這里腳本之家小編為大家分享與整理了幾個(gè)軟件方便大家使用2016-11-11
CentOS7安裝MySQL8的超級詳細(xì)教程(無坑!)
我們在Linux系統(tǒng)中,如果要使用關(guān)系型數(shù)據(jù)庫的話,基本都是用的mysql,這篇文章主要給大家介紹了關(guān)于CentOS7安裝MySQL8的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-06-06
MySQL提示Truncated incorrect DOUBLE value解決方法
這篇文章給大家介紹了MySQL提示Truncated incorrect DOUBLE value報(bào)錯(cuò)的四種解決方法,并通過代碼給大家介紹的非常詳細(xì),具有一定的參考價(jià)值,需要的朋友可以參考下2024-02-02
mysql查看binlog日志的實(shí)現(xiàn)方法
本文主要介紹了配置和查看MySQL?8.01的binlog日志,包括開啟binlog日志、配置日志格式、查看日志位置和內(nèi)容等,具有一定的參考價(jià)值,感興趣的可以了解一下2024-11-11

