get_json_string/json_extract 在不同的Doris版本中结果不一致

Viewed 26

执行以下SQL 查询语句


SELECT JSON_EXTRACT('[{"a":"123", "b": "456"},{"a":"23", "b": "56"}]', '$.[*].a')
UNION ALL
SELECT @@version_comment
UNION ALL
SELECT GET_JSON_STRING('[{"a":"123", "b": "456"},{"a":"23", "b": "56"}]', '$.[*].a')
UNION ALL
SELECT @@version_comment;

可以在2.1.X版本中得到json_key对应的value集合

PixPin_2026-04-08_17-11-40.png

但是在SD 4.1.2 版本中相同的查询遍历不出来数据
PixPin_2026-04-08_17-11-10.png

希望SD 4.1.X可以修复这个问题

1 Answers

hi 老师,这个是正确的行为变更,是和mysql 保持一致了。

举例子:
'[{"k1":"v1"}, {"k2":"v2"}, {"k1":"v3"}, {"k1":"v4"}]'

这是一个数组,但是 path '$.k1' 对应的应该是访问 object 的 k1 字段,所以无法匹配到。
当前的行为变更是按照下标取,如下:
image.png

您是在用selectdb cloud 的吗?您可以加我主页微信哈~