-- 示例代码:解析 JSON 数组并提取其中的元素
-- 假设我们有一个包含 JSON 数组的列 `json_column`,表名为 `my_table`
-- JSON 数据示例:'["apple", "banana", "cherry"]'
-- 1. 提取 JSON 数组中的第一个元素
SELECT JSON_UNQUOTE(JSON_EXTRACT(json_column, '$[0]')) AS first_element
FROM my_table;
-- 2. 提取 JSON 数组中的所有元素,并展开为多行
WITH RECURSIVE json_elements AS (
SELECT
CAST(JSON_EXTRACT(json_column, CONCAT('$[', 0, ']')) AS CHAR) AS element,
0 AS index
FROM my_table
UNION ALL
SELECT
CAST(JSON_EXTRACT(json_column, CONCAT('$[', index + 1, ']')) AS CHAR),
index + 1
FROM json_elements
WHERE JSON_EXTRACT(json_column, CONCAT('$[', index + 1, ']')) IS NOT NULL
)
SELECT element
FROM json_elements;
-- 解释:
-- 1. `JSON_EXTRACT` 函数用于从 JSON 数据中提取指定路径的值。
-- 2. `JSON_UNQUOTE` 函数用于去除 JSON 字符串的引号。
-- 3. 在递归查询中,我们逐步提取 JSON 数组中的每个元素,并将其展开为多行结果。
上一篇:mysql基本操作
下一篇:mysql 字符串拆分
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站