ADB这个差异没有写 JSON_EXTRACT 这个函数的,那adb 能获取到 [1,2] 这种结?

ADB这个差异没有写 JSON_EXTRACT 这个函数的,那adb 能JSON_EXTRACT(json'[{"a":1},{"a":2}]','$.a') 获取到 [1,2] 这种结果吗?

展开
收起
真的很搞笑 2023-05-24 17:13:31 240 分享 版权
1 条回答
写回答
取消 提交回答
  • ADB 是 OceanBase 数据库下的分布式关系型数据库管理系统,而 JSON_EXTRACT 是 MySQL 内置的用于查询 JSON 数据的函数,两者有区别。

    ADB 支持对 JSON 类型的数据进行操作,但是其内置函数与 MySQL 不同,所以 ADB 不支持 JSON_EXTRACT 用法。如果您需要在 ADB 中进行 JSON 数据的查询操作,您可以使用 ADB 内置的 JSON 系列函数,例如 JSON_VALUE、JSON_TABLE、JSON_UNQUOTE 等函数。

    举个例子,您可以使用以下语法在 ADB 中查询 JSON 数据:

    SELECT JSON_VALUE('{"a":1, "b":2}', '$.a');  -- 返回 1
    

    另外,您提到想要获取 JSON 数组对象中的某一属性,您可以使用 ADB 的 JSON_TABLE 函数进行查询,具体语法如下:

    SELECT t.a FROM JSON_TABLE('{"data":[{"a":1},{"a":2}]}', '$.data[*]' COLUMNS (a INT PATH '$.a')) t;
    

    以上语句可以查询出 JSON 数组对象中所有 a 属性的值,结果为 1, 2。

    2023-05-25 14:05:03
    赞同 展开评论

阿里云自主研发的云原生数据仓库,具有高并发读写、低峰谷读写、弹性扩展、安全可靠等特性,可支持PB级别数据存储,可广泛应用于BI、机器学习、实时分析、数据挖掘等场景。包含AnalyticDB MySQL版、AnalyticDB PostgreSQL 版。

收录在圈子:
+ 订阅
让用户数据永远在线,让数据无缝的自由流动
还有其他疑问?
咨询AI助理