把 Mysql Json数据转化成表进行查询的方法(跟ChatGPT 学的方法)

文章展示了如何在MySQL中利用JSON_TABLE函数将JSON数组转换为表格,然后通过数据过滤(基于年龄在25至45之间)再用JSON_ARRAYAGG聚合结果,最后将过滤后的JSON对象存储到变量中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实话实说,这个方法是跟chatGpt 学的。记录如下

在这里插入图片描述
我进行了简单修改,mysql 完整代码如下:

set @json_array=' [ { "id" : "01", "age" : 20 } ,  { "id" : "02", "age" : 30 } ,{ "id" : "03", "age" : 40 } ,{ "id" : "04", "age" : 50 } ] ';
SELECT JSON_ARRAYAGG(json_obj) into @filtered_json_array
FROM (
  SELECT JSON_OBJECT('id', j.id, 'age', j.age) AS json_obj 
  FROM  JSON_TABLE(@json_array, '$[*]' COLUMNS (
    id VARCHAR(10) PATH '$.id',
    age INT PATH '$.age'
  )) j
  WHERE j.age BETWEEN 25 AND 45
) AS filtered_data;

select @filtered_json_array;

结果以josn数组的形式保存到 @filtered_json_array 中,上述运行结果如下;
在这里插入图片描述
上面的关进函数是:JSON_TABLE 和JSON_ARRAYAGG。

感谢柴老师.

MaraSun BJFWDQ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值