我正在尝试使用mysql JSON_extract提取JSON数组中两个索引之间的值。
SELECT JSON_EXTRACT('[10, 20, 30, 40,50, 60]', '$[1]');
此查询将顺利返回20
作为结果。但是,如果我想得到介于第一个和第三个索引之间的所有数字,我该如何查询?
我期待着这样的东西:
SELECT JSON_EXTRACT('[10, 20, 30, 40,50, 60]', '$[1]..$[3]'); // Not the proper syntax
其将返回CCD_ 2。但不起作用。
我该如何做到这一点?
SELECT JSON_EXTRACT('[10, 20, 30, 40,50, 60]', CONCAT('$[', idx, ']'))
FROM ( SELECT 1 idx UNION SELECT 2 UNION SELECT 3 ) src;
当然,索引范围可以作为列表/范围提供,并在CTE/subquery中转换为行集。