Я написал свой sqlquery в workbench сначала, прежде чем перевести его на код laravel, и я могу подтвердить это. Вот мой SQL-запрос написан на верстакеLaravel whereRaw не возвращает ничего
SET @info = 'hello';
SELECT device_type_id
FROM arecibo.device_type_mappings
WHERE @info LIKE concat('%', name , '%') COLLATE utf8_unicode_ci;
Я хочу прямо сейчас преобразовать это код, но у меня возникают проблемы, как это ничего не возвращаются обратно. У меня есть googled, чтобы увидеть, что я могу пропустить, но безрезультатно я ничего не мог найти. Вот моя попытка код:
$deviceTypeId = DB::table('device_type_mappings')
->select('device_type_id')
->whereRaw('? LIKE concat(\'%\', name , \'%\') COLLATE utf8_unicode_ci;', [$sysInfo])
->get();
, если это возможно, я хотел бы использовать эту модель, но она жаловалась, что не было никакого выбора метода подвергается.
Я использую Laravel 5,3
Проверьте журналы laravel и журналы mysql. Чтобы быть абсолютно честным, я не вижу ничего явно неправильного в вашем запросе. Единственное, что кажется неправильным, это ';' в конце 'COLLATE utf8_unicode_ci', вам это не нужно. – Andrew
Замените '-> get' с' -> toSql() 'дампом это значение и сравните с тем, что вы ожидали, и добавьте его к этому вопросу, если вам нужна дополнительная помощь. –