在MySql表中的Json数组中搜索

时间:2018-12-20 04:10:22

标签: mysql json

我将json数组存储在名为member_details的mysql字段中,

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

现在,我要搜索种姓为3的成员。有时候,我需要搜索sub_caste 2

我该如何实现?

我尝试使用json_contains,但这给了我空的结果

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

但结果为空。

2 个答案:

答案 0 :(得分:1)

这是一种方法:

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

语法member_details->"$[0].caste首先使用[0]访问外部数组中的第一个(也是唯一的)JSON元素。然后,它使用caste访问.caste键。最后,JSON_SEARCH检查等级3数组中是否出现值3。

如果您需要搜索sub_caste 2,则可以使用类似的逻辑。

答案 1 :(得分:0)

  • select * from member where JSON_EXTRACT(caste, "2");

能否请您尝试使用此查询从DB获取值。 Reference Link

希望对您有帮助。