@PendalF89

Как в MySQL сформировать запрос на выборку вложенного массива json?

Здравствуйте!
Имеется json, который записан в поле data_json с типом "json" в таблице MySQL:
{
  "name": "Test",
  "books": [
    {
      "id": 1
    },
    {
      "id": 2
    }
  ]
}

Как мне сделать выборку по id массива books, где id = 1?

Пробовал что-то типа того, но так не работает:
SELECT
	* 
FROM
	test
WHERE
	data_json -> "$.books[*].id" = 1
  • Вопрос задан
  • 108 просмотров
Пригласить эксперта
Ответы на вопрос 1
orlov0562
@orlov0562
I'm cool!
Никак, или я не знаю как.

Дело в том, что выборка data_json -> "$.books[*].id" вернет вот такое значение "[1, 2]" его некорректно сравнивать с числом.

SELECT data_json -> "$.books[*].id" FROM test

В MySQL 8 есть JSON_TABLE, предполагаю, что из "[1, 2]" можно сделать таблицу и уже по ней строить условие.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
BasicDecor Москва
от 90 000 до 130 000 руб.
ЛОКО-Банк Москва
от 180 000 руб.
TR-Project Краснодар
До 200 000 руб.
26 июн. 2019, в 12:54
15000 руб./за проект
26 июн. 2019, в 12:49
50000 руб./за проект
26 июн. 2019, в 12:45
2000 руб./за проект