Запрос столбца JSON для извлечения выбранной карты в списке массивов Mysql 5.7 - PullRequest
1 голос
/ 18 февраля 2020

Я использую 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 ?

1 Ответ

0 голосов
/ 18 февраля 2020
SELECT browser,JSON_EXTRACT(browser,"$.price")
FROM events t
WHERE JSON_EXTRACT(browser,"$.price")=10.00
...