В моей базе данных есть столбец json
с французскими символами. Поэтому, когда я использую:
App\Job::where('name->fr', 'like', '%Fune%')->count();
Не удается найти результаты для заданий с акцентом в имени, например Funéraire
. Я могу добиться того, чего хочу, добавив в запрос сопоставление, используя whereRaw
:
App\Job::whereRaw('json_unquote(json_extract(`name`, \'$."fr"\')) LIKE \'%Fune%\' collate utf8mb4_general_ci')->count();
Однако, когда я использую привязки в моем методе whereRaw
:
App\Job::whereRaw('json_unquote(json_extract(`name`, \'$."fr"\')) LIKE ? collate utf8mb4_general_ci', ['%Fune%'])->count();
Я получаю сообщение об ошибке базы данных:
COLLATION 'utf8mb4_general_ci' недопустим для CHARACTER SET 'binary' (SQL: выберите количество (*) из jobs
, где json_unquote (json_extract (name
,'$. "fr"')) LIKE% Fune% collate utf8mb4_general_ci)
Просто интересно, почему это не работает, когда я передаю его с привязками.