Mysql Json - 根据给定的id

时间:2016-12-21 11:29:23

标签: php mysql json mysql-5.7

我在'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的特定对象?

1 个答案:

答案 0 :(得分:0)

您还需要在JSON_EXTRACT(中提供, "$[0].uid")"用户SELECT

尝试

SELECT *, JSON_EXTRACT(`user`, "$[0].uid") FROM users WHERE JSON_EXTRACT(`user`, "$[0].uid") = "213"

Referance