我在'users'表中有一个名为'user'的json类型字段,其中包含以下数据
[{"uid":"213", "name":"Tim", "email":"user1@example.com"}, {"uid":"214", "name":"Cook", "email":"user2@example.com"}, {"uid":"215", "name":"Peter", "email":"user3@example.com"}, {"uid":"216", "name":"Jhon", "email":"user4@example.com"}]
我想获取给定uid
的用户对象
使用此查询
SELECT * FROM users WHERE json_extract(`user`, "$[0].uid") = "213"
但它返回用户字段中的整个数组
我想要的结果是 - {"uid":"213", "name":"Tim", "email":"user1@example.com"}
也尝试了这个
SELECT * FROM users WHERE json_extract(`user`, "$[*].uid") = "213"`
但它会返回NULL
如何找到给定uid的特定对象?
答案 0 :(得分:0)
您还需要在JSON_EXTRACT(
中提供, "$[0].uid")"
用户SELECT
。
尝试
SELECT *, JSON_EXTRACT(`user`, "$[0].uid") FROM users WHERE JSON_EXTRACT(`user`, "$[0].uid") = "213"