Как выбрать столбец json с такой структурой для Mysql 5.7 - PullRequest
0 голосов
/ 21 января 2020

У меня есть таблица продуктов со следующими атрибутами в моей таблице базы данных mysql5.7 Продукты

  • id: Integer
  • атрибуты: Json Тип
  • цена

Я вставил следующую запись:

INSERT INTO `products` (`id`, `attributes`, `name`, `cost_price`,
`selling_price`) VALUES (NULL, '{\"size\": [{\"value\": \"M\"},
{\"value\": \"L\"}], \"test\": 1, \"color\": [\"black\", \"maroon\",
\"orange\"]}', 'P2', '10', '20');

Вот значение json для столбца:

{"size": [{"value": "M"}, {"value": "L"}], "test": 1, "color": ["black", "maroon", "orange "]}

Как получить записи данных, размер которых: L? Как мне сделать запрос sql в Mysql? Я попробовал это, и это не работает:

SELECT * FROM `products` where attributes->>'$.size[*].value'='M'

Надеюсь, кто-то может помочь мне понять, как я жаль, что плохо знаком с Json структурой в mysql. Заранее спасибо

1 Ответ

0 голосов
/ 21 января 2020

Мне удалось решить эту проблему, и я считаю, что это возможный запрос:

select * from products where json_contains(attributes, '{"size":{"value" : "XL"}}');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...