首页 > 解决方案 > Mysql - 在数组中找到 JSON_CONTAINS

问题描述

我有包含以下数据的 json 列:

[{"option_id": 1, "category_id": 1}, {"option_id": 2, "category_id": 2}]

我正在尝试查找option_id = 1的记录

这是我正在尝试的查询:

select count(*) as aggregate from `complaint_forms` 
where json_contains(`outcome_options`, '1', '$."option_id"') 

计数为 0。我在这里做错了什么?

标签: mysqlmysql-json

解决方案


您希望将候选对象指定为具有所需属性和值的对象,而不仅仅是值,而不是指定路径:

select count(*) as aggregate from `complaint_forms` 
where json_contains(`outcome_options`, '{"option_id":1}')

小提琴


推荐阅读