Как получить доступ к атрибутам json в MariaDB с помощью Laravel? - PullRequest
0 голосов
/ 05 октября 2018

У меня есть таблица со столбцом с именем «data», которая состоит из:

{"id":1074,"opened":true,"subscribed":true}

Я хочу запрос, который фильтрует по этим атрибутам.

Я пытался

->whereRaw('JSON_EXTRACT(data, "$.opened")', false)

и

->where('data->opened', false)

Ответ:

PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '>'$."id"' = ? and `data`->'$."opened"' = false order by `created_at` desc' at line 1 in.....

Я знаю, что этот код работает с MySQL 5.7, но мой сервер работает "10.1.34-MariaDB-0"и я не могу перейти на MySQL, потому что он не поддерживается Plesk.

1 Ответ

0 голосов
/ 05 октября 2018

MariaDB не поддерживает тип Json на сегодняшний день.

Если вы застряли и нуждаетесь в нем для работы с MariaDB.попробуйте использовать метатаблицу.

+----+------------+------------+-------+
| id | foreign_id | name       | value |
+----+------------+------------+-------+
| 1  | 1074       | subscribed | 1     |
+----+------------+------------+-------+
| 2  | 1074       | opened     | 0     |
+----+------------+------------+-------+
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...