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