php - Mysql Json - 根据给定的 id 从 json 数组中获取特定对象

标签 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的特定对象?

最佳答案

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

尝试

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

Referance

关于php - Mysql Json - 根据给定的 id 从 json 数组中获取特定对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41261772/

相关文章:

javascript - 在 Node.js 中使用 JavaScript 从 JSON 对象获取和设置文本内容

json - Hyperoslo Sync 无法使用 Alamofire JSON 响应

android - 对等通信选项

javascript - 尝试使其动态时,jQuery AJAX 自动完成功能不起作用

php - 在另一个查询中使用 MySQL 结果

php - 使用 PHP 在不同的时区回显 MySQL 时间戳

mysql - MySQL中varchar类型的内部表示

php - 如何使数据库表字段动态化

mysql - PMA 数据库...在 phpMyAdmin 升级中不正常

php - 在 javascript 中设置 cookie 值并用 php 显示它