json функций, работающих в mysql версии 5.7 и mariadb 10.4.11, но не в 10.1.44 - PullRequest
0 голосов
/ 04 мая 2020

У меня была странная проблема, когда какие-либо команды json не работали после того, как я загрузил свой проект на сервер, где версия mysql была 5.6. На моем локальном хосте версия моего сервера была 10.4.11, и запрос работал нормально. Я проверил это должно быть по крайней мере 5.7. Так что я проверил запрос в 5.7 также, который работал нормально. Затем я обновил свой сервер и до 10.1.44. Но теперь запрос не работал

ошибка, которую он показывает, это синтаксическая ошибка или нарушение прав доступа 1305.function dbname.json_contains не существует

, и вот один мой запрос ниже, где я использовал laravel

Card::SELECT('id','name','unique_id')
    ->where(DB::raw("json_extract(present_address, '$.union')"), 'some_union')
    ->where('geo_union_id','=',2218)
    ->get();

Не могли бы вы дать мне решение этого. и если есть какая-либо документация о том, как я могу использовать эту функцию в mariadb 10.1.44, тогда, пожалуйста, предоставьте

1 Ответ

0 голосов
/ 04 мая 2020

Согласно официальной странице mariadb в https://mariadb.com/kb/en/json-data-type/

Псевдоним JSON был добавлен в MariaDB 10.2.7.

Так если вы хотите использовать функции json в своем запросе, вы должны использовать 10.2.7 или более поздние версии из mariadb. Если вы не можете этого сделать, просто используйте LONGTEXT и выполните поиск с помощью regex в where clause

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...