我正在尝试使用Eloquent运行查询
$ vars ['language']是小写字母,但language列不一定是小写字母。我该如何使用 Eloquent 方式进行此搜索,但查询中仍然存在小写字母
Item::where('language', $vars['language'])
我想做的是即使我在任何地方都找不到该怎么做
Item::where('LOWER(language)', $vars['language'])
这样它们都是小写的,然后我可以使它们匹配。
最佳答案
将whereRaw与parameter binding一起使用可清理whereRaw语句:
$term = strtolower($vars['language']);
Item::whereRaw('lower(language) like (?)',["%{$term}%"])->get();
上一个答案
在某些数据库中,您可以在何处使用运算符
ilike
。例如Item::where('language', 'ilike', $vars['language'])->get();
所有可用的运算符为:
protected $operators = array(
'=', '<', '>', '<=', '>=', '<>', '!=',
'like', 'not like', 'between', 'ilike',
'&', '|', '^', '<<', '>>',
);
编辑:
ilike
不区分大小写like
。关于mysql - Laravel Eloquent 地忽略套管,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21213490/