我使用的是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)
有人能解释一下为什么它不起作用,或者如何查询包含价格=10.00的地图吗?
SELECT browser,JSON_EXTRACT(browser,"$.price")
FROM events t
WHERE JSON_EXTRACT(browser,"$.price")=10.00