如何在 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 列中的对象的 属性。
例如,我在 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 列中的对象的 属性。