Извлечение JSON Значение из таблицы - PullRequest
2 голосов
/ 23 марта 2020

У меня есть таблица MariaDB, называемая жанрами с этими столбцами (жанры - это столбец JSON):

+----+------------------------------------+
| id | genres                             |
+----+------------------------------------+
| 1  | ["Action", "Martial Arts", "Love"] |
+----+------------------------------------+

Если я запрашиваю:

SELECT JSON_EXTRACT( (SELECT genres.genres FROM genres), '$[2]' );

, я получаю:

"Love"

Что правильно. Но если я попытаюсь использовать оператор стрелки JSON_EXTRACT (), ->:

SELECT genres.genres->"$[2]" FROM genres;

Я получу:

Код ошибки: 1064. У вас есть ошибка в вашем SQL синтаксис; проверьте руководство, соответствующее вашей версии сервера MariaDB, на предмет правильного синтаксиса для использования рядом с '> "$ [1]" FROM genres "в строке 1

Почему я не могу использовать оператор стрелки? Что-то не так с моим синтаксисом или данными? Почему это работает только тогда, когда я делаю это долго, с JSON_EXTRACT ()?

1 Ответ

1 голос
/ 23 марта 2020

столбец -> путь и столбец - >> путь операторы не поддерживаются в MariaDB-10.2, 10.3 даже в 10.4.

Это может быть более короткая версия для вашего случая

SELECT JSON_EXTRACT( genres , '$[2]' ) FROM genres
...