@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
  • Вопрос задан
  • 217 просмотров
Пригласить эксперта
Ответы на вопрос 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]" можно сделать таблицу и уже по ней строить условие.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы