欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

mysql+json遍歷數組中

錢浩然2年前11瀏覽0評論

MySQL 8.0 開始支持 JSON 數據類型,可以將 JSON 數據存儲為 TEXT、BLOB 和 JSON 類型。在 MySQL 中查詢和處理 JSON 數據時,可以使用 JSON_OBJECT()、JSON_ARRAY()、JSON_OBJECTAGG()、JSON_ARRAYAGG() 等函數來構建和解析 JSON。

遍歷一個 JSON 數組可以使用 JSON_TABLE() 函數。該函數將 JSON 數據轉化為關系表格,并可以在關系表格中進行查詢操作。對于數組中的元素,可以使用 JSON_TABLE() 的 COLUMNS 子句來指定每個元素的列名,注意需要使用 JSON_UNQUOTE() 來解析列中的 JSON 字符串。

SELECT j.*
FROM my_table t,
JSON_TABLE(t.json_str,
"$[*]" COLUMNS (
id FOR ORDINALITY,              # 獲取元素序號
name varchar(50) PATH "$.name", # 獲取 name 字段
age  int        PATH "$.age"   # 獲取 age 字段
)
) j
WHERE t.id = 1;

該示例中的 $[*] 表示使用 JSONPath 的通配符,對于數組中的每個元素都會執行一次 COLUMNS 子句中的查詢操作。ORDINALITY 列是必須的,它會為每個元素生成一個遞增的整數值,表示該元素在數組中的位置。

在 JSON_TABLE() 函數中可以使用其他的 JSONPath 表達式,例如使用 $[*].name 可以只獲取數組中 name 字段的值。也可以使用 JSON_OBJECT() 函數來將每個元素轉化為一個 JSON 對象,方便在應用中進行進一步處理。