mysql - 根据mysql中的索引提取json数组
问题描述
有2个查询。首先是如何获取一个json数组的索引
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(JSON_SEARCH(somecolumn1, 'one', 'macro', null,
'$.my_policies.inmy_policies.some_filters'),"[",-1),']',1)
as name FROM table1;
其次是从json数组中获取第n个元素(下面提取第2个元素)
select JSON_EXTRACT(somecolumn1,"$.my_policies.inmy_policies.some_filters[1]")
as name from table1;
我需要将这两个查询组合在一个命令中。首先获取索引并在第 n 个位置传递 JSON EXTRACT 中的索引。
解决方案
尝试:
SELECT
JSON_EXTRACT(
@`json`,
CONCAT(
'$.my_policies.inmy_policies.some_filters[',
(
SELECT
SUBSTRING_INDEX(
SUBSTRING_INDEX(
JSON_SEARCH(
@`json`,
'one',
'macro',
null,
'$.my_policies.inmy_policies.some_filters[*].filter_name'
),
"[",
-1
),
']',
1
)
),
']'
)
) `json_filter`;
请参阅dbfiddle。
推荐阅读
- google-photos - 从 Google Photos API 下载全分辨率视频
- python - 设置理解没有按预期运行
- c# - ICustomFormatter 使用 string.Format 返回 null
- nativescript - Hockeyapp 和 Cocopods - 应用程序崩溃
- api - 触发时间戳的 Azure 数据工厂 v2 管道 API 调用
- c# - 如何在 LINQ 中分组,然后从一组顺序检查中首先从组中获取
- haskell - Haskell fmap 通过自定义数据类型
- python - 从 pandas 数据帧写入 .csv 文件,以连续空格作为分隔符
- java - 在 switch 语句上有一个无法访问的语句
- python - 如何在numpy中创建一个反对角单位矩阵(对角线从左到右翻转)