我将 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"}')
但它给出了空结果。
最佳答案
这是一种方法:
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 是否出现在 caste 数组中。
如果您需要搜索 sub_caste
2,那么您可以使用类似的逻辑。
关于mysql - 在 MySql 表中的 Json 数组中搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53862304/