mysql - 查询JSON列以提取Mysql 5.7的Array List中的选定映射
问题描述
我正在使用 Mysql 5.7,它有以下数据集。
mysql> select id, browser from events;
+----+--------------------------------------------------------------------+
| id | browser |
+----+--------------------------------------------------------------------+
| 1 | [{"price": "10.00", "tag": "60"}, {"price": "25.00", "tag": "20"}] |
| 2 | [{"price": "8.00", "tag": "10"}, {"price": "25.00", "tag": "20 "}] |
+----+--------------------------------------------------------------------+
我只想从此数据集中提取以下地图。(不是整个数组列表)
{"price": "10.00", "tag": "60"}
我尝试了以下命令,但提供了一个空集。
mysql> select * from events where json_contains(browser->'$[*].price', json_object('price',"10.00"));
Empty set (0.00 sec)
有人可以解释一下为什么它不起作用或如何查询包含price =10.00的地图吗?
解决方案
SELECT browser,JSON_EXTRACT(browser,"$.price")
FROM events t
WHERE JSON_EXTRACT(browser,"$.price")=10.00
推荐阅读
- r - 是否可以仅在选定的组内变异?
- assembly - 如何在汇编中打印 Hello World?
- python - 熊猫多重合并创建多维重复列
- javascript - React redux 不会更新类组件的状态
- flutter - 如何在渲染之前检测小部件是否会溢出其约束?
- java - 有什么方法可以使用“import org.apache.lucene.document.Field.Index;” 使用 Apache lucene 8.6.0
- c# - 以下代码实际上是如何工作的?
- sql - 在 SQL Server 中转换 MS Access 更新查询
- amazon-web-services - 从 ECR 拉取镜像到 Kubernetes 部署文件
- python - 重新格式化从 html 中提取的 line/div