我在“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的特定对象?
最佳答案
您还需要在 SELECT
中提供 JSON_EXTRACT(
user, "$[0].uid")"
。
尝试
SELECT *, JSON_EXTRACT(`user`, "$[0].uid") FROM users WHERE JSON_EXTRACT(`user`, "$[0].uid") = "213"
关于php - Mysql Json - 根据给定的 id 从 json 数组中获取特定对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41261772/