如何在 mysql 中包含 json 的 where 子句?

How can I do where clause containing json in mysql?

例如,我在 table A

中有一个名为 json 的列

Json 列包含 json 数据,如下所示:

record 1 : {"dept_code": "012", "unit_code": "22"}
record 2 : {"dept_code": "013", "unit_code": "23"}
etc

我想获取包含dept_code = 012

的json列的数据记录
SELECT * FROM table_A WHERE json = ...(looking dept_code = 012)...

我该怎么做?

注:

我试图在网站 Whosebug 上寻找答案,但没有找到。所以我提出这个问题

 ...WHERE JSON_CONTAINS(`json `, '{"dept_code " : "012"}')

也许这可以帮助:

SELECT * FROM table_A where json like '%"dept_code": "012"%';

很确定 JSON_CONTAINS 就是您想要的。 View the docs here

我现在没有沙箱来测试这个,但你的例子会转化为类似的东西:

select * from table_A
where json_contains(json, '012', '$.dept_code')

因为 dept_code 是存储在 json 列中的对象的 属性。