mysql - 如何使用对象数组从 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
对象数组的集合而不是搜索它。
解决方案
推荐阅读
- javascript - Javascript mouseDown - 无法读取未定义的 currentTarget
- java - 代码依赖于java中的对象
- java - 从同一对象同时运行的线程
- vue.js - 不使用 npm 时如何加载外部 Vue 组件
- c++ - 如何实例化一个类的公共成员并将其作为 std::promise 返回?
- javascript - 空的 href 会通过最严格的内容安全政策吗?
- python - 如何使用 2 列值更新第三列中的值?
- azure-devops - Visual Studio App Center - VSTS 多个组织
- python - 用于混合/混合物的python
- docker - 如何在具有服务器核心的 Docker 容器上安装 Windows 服务