Данные не возвращаются из типа данных MySQL JSON

У меня есть данные поиска из поля JSON MySQL по условию где. но нет данных покажи.

MySql имя поля «attribute_list», который имеет тип json

Мои данные JSON:

{
"0":
{
"id": "01c93aae-8603-42f3-b097-89357467872a#####ed20eb29-611a-4e5c-a966-c09708c98179",
"text": "Canada",
"attr_name": "Country"},
"1":
{
"id": "01c93aae-8603-42f3-b097-89357467872a#####6e6269a1-afbb-4d5d-b2ee-6d25fe38fec7",
"text": "Ontario",
"attr_name": "REGION"},
"2":
{
"id": "5a0a085e-f3e4-4fbe-9f3e-61cec4836d36#####d81923c9-9532-4375-ba3d-19214ac61c4e",
"text": "Lager",
"attr_name": "TYPE"},
"-1": {"id": "", "text": "", "attr_name": ""}
}

Мой JSON-запрос MySQL:

когда я запускаю следующий запрос, то показывает данные

SELECT * FROM products where attributes_list->'$[0]."0".text' = 'Canada';

но когда я запускаю это не показывать данные

SELECT * FROM products where attributes_list->'$[0]."*".text' = 'Canada';

Я объясняю свое состояние:

В таблице товаров 6 строк. В таблице товаров есть поле, название которого составляет список атрибутов.

Это поле типа json. Есть сохранить несколько атрибутов продукта. мой список атрибутов

{"0":{"id":"","text":""},"1":{"id":"","text":""}}.

Теперь я хочу найти, где text = ‘Canada’, а затем прочитать информацию о продукте.

0

Решение

Согласно mySql руководство Селектор $ **. текст будет использоваться.

[найдите (путь $ **. b) на странице, чтобы добраться туда.]

Это будет искать второй уровень каждого документа и вернет значение текстового ключа на втором уровне.
Таким образом, ваш запрос будет выглядеть так:

SELECT * FROM products where attributes_list->'$.*.text' = 'Canada';

Также я попытался выполнить ту же задачу, что вы упоминали выше в играть на скрипке

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]