У меня есть данные поиска из поля 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’, а затем прочитать информацию о продукте.
Согласно mySql руководство Селектор $ **. текст будет использоваться.
[найдите (путь $ **. b) на странице, чтобы добраться туда.]Это будет искать второй уровень каждого документа и вернет значение текстового ключа на втором уровне.
Таким образом, ваш запрос будет выглядеть так:
SELECT * FROM products where attributes_list->'$.*.text' = 'Canada';
Также я попытался выполнить ту же задачу, что вы упоминали выше в играть на скрипке
Других решений пока нет …