实话实说,这个方法是跟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

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

被折叠的 条评论
为什么被折叠?



