在mysql表的json数组中搜索

ee7vknir  于 2021-06-15  发布在  Mysql
关注(0)|答案(2)|浏览(545)

我将json数组存储在mysql字段member\u details中,

[{"religion":null,"caste":["2","3","4"],"sub_caste":["0","1","2"],"family_value":null,"family_status":null}]

现在,我要搜索的成员谁是有种姓3。有时我需要寻找 sub_caste 2 .
我怎样才能做到这一点?
我试过使用json,但结果是空的

select * from member where json_contains('member_details', '{"caste" : "2"}')

但它给出的结果是空的。

ngynwnxp

ngynwnxp1#

有一种方法:

SELECT *
FROM yourTable
WHERE JSON_SEARCH(member_details->"$[0].caste", 'one', '3') IS NOT NULL;

语法 member_details->"$[0].caste 首先访问外部数组中的第一个(也是唯一一个)json元素,使用 [0] . 然后,它访问 caste 键,使用 .caste . 最后, JSON_SEARCH 检查值3是否出现在caste数组中。
如果你需要寻找 sub_caste 2然后你可以使用类似的逻辑。

mf98qq94

mf98qq942#

select * from member where JSON_EXTRACT(caste, "2"); 你能试试这个查询从数据库获取值吗。参考链接
我希望这对你有帮助。

相关问题