雄辩的地方lower()喜欢PostgrSQL Laravel

use*_*734 2 postgresql laravel eloquent laravel-5 laravel-5.5

我想使用Eloquent在Laravel 中的PostgreSQL中加快查询速度。

现在我有这个:

$word = 'Bertha'
$cows->where('name', 'ilike', '%' . $word . '%');
Run Code Online (Sandbox Code Playgroud)

当我做正常like练习而不是练习时更快ilike

所以我尝试了以下方法:

$cows->where('LOWER(name)', 'like', '%' . $word . '%');
Run Code Online (Sandbox Code Playgroud)

$cows->whereRaw('LOWER(name) like %' . $word . '%');
Run Code Online (Sandbox Code Playgroud)

$cows->whereRaw('LOWER(name) like %?%', [$word]);
Run Code Online (Sandbox Code Playgroud)

这一切都会因错误而失败。我究竟做错了什么?

Nik*_*aut 5

您可以使用 DB::raw()

$cows->where(\DB::raw('LOWER(name)'), 'like', '%' . $word . '%');
Run Code Online (Sandbox Code Playgroud)