首页 > 解决方案 > 如何使用对象数组从 JSON 列中查询数据

问题描述

假设我有下表结构:

在此处输入图像描述

并且address_collection每个表行条目都有一个值:

在此处输入图像描述

我如何能够根据address_uid分配到的数组从数组中查询特定的 json 对象user_id

JSON_EXTRACT()并且它的->别名不起作用(返回 null),因为据我了解,它仅适用于单个 JSON 对象。

例子:

SELECT
    u.*
FROM
    user u
WHERE
    u.user_id = 1
AND
    u.address_collection->"$.address_uid" = "a83b662f-60de-4d3d-ab05-43b0746fb2a2";

上面的例子没有产生任何结果,因为u.address_collection->"$.address_uid" = "a83b662f-60de-4d3d-ab05-43b0746fb2a2";

将该行修改为u.address_collection->"$[0].address_uid" = "a83b662f-60de-4d3d-ab05-43b0746fb2a2";也不起作用,因为左侧部分的结果返回address_uid对象数组的集合而不是搜索它。

标签: mysqlarraysjson

解决方案


推荐阅读