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"(帶引號的字符串)2. JSON_UNQUOTE(json_value)
功能:將 JSON 提取結(jié)果中的引號去掉,返回原始值。
適用場景:當(dāng)你需要直接操作提取的值而不是帶引號的字符串時(shí)使用。
JSON_UNQUOTE(JSON_EXTRACT('{"level": "critical"}', '$.level'))
-- 返回: critical(不帶引號)實(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 會提取 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 會提取 email。
3. 提取數(shù)組中的所有值
如果你需要提取整個(gè)數(shù)組或其中的所有元素,可以使用通配符 *。
示例:提取 notifications 數(shù)組中所有 name 字段
SELECT JSON_UNQUOTE(JSON_EXTRACT(json_data, '$.notifications[*].name')) AS names;
輸出結(jié)果為:["email", "slack"](去除外層引號后仍然是字符串格式)。如果路徑不存在于 JSON 中,JSON_EXTRACT 會返回 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 order by實(shí)現(xiàn)原理分析和Filesort優(yōu)化方式
這篇文章主要介紹了MySQL order by實(shí)現(xiàn)原理分析和Filesort優(yōu)化方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12
關(guān)于Mysql子查詢的三個(gè)應(yīng)用場景
這篇文章主要介紹了關(guān)于Mysql子查詢的三個(gè)應(yīng)用場景,子查詢是在一個(gè)完整的查詢語句中,嵌套不同功能的小查詢,從而完成復(fù)雜查詢的一種編寫形式,需要的朋友可以參考下2023-07-07
lnmp下如何關(guān)閉Mysql日志保護(hù)磁盤空間
這篇文章主要介紹了lnmp下如何關(guān)閉Mysql日志保護(hù)磁盤空間的相關(guān)資料,需要的朋友可以參考下2015-09-09

