首页 > 解决方案 > 如何在 mysql 中搜索迭代循环 json 数据?

问题描述

我正在使用带有本机 JSON 数据类型的 MySQL 5.7+。

样本数据:

set @jsn_string='{\"body\": {\"items\": \"[{\\"count\\":530,\\"id\\":5},{\\"count\\":1,\\"id\\":519},{\\"count\\":209,\\"id\\":522},{\\"count\\":0,\\"id\\":3004}]\"}}';

问题:

我想检索迭代的键值。

以下结果有数据的位置

select json_extract(replace(replace(replace(trim(@jsn_string), '\"[', '['), ']\"', ']'), '\\"', '\"'),'$.body.items[0].id') as id,
json_extract(replace(replace(replace(trim(@jsn_string), '\"[', '['), ']\"', ']'), '\\"', '\"'),'$.body.items[0].count') as count;

结果是 id 计数 5 530

但我想要所有数组,如下所示

id[0] count[0], id[1] count[1], id[n] count[n]

标签: mysqljsonloops

解决方案


推荐阅读