我正在尝试使用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/

10-13 09:07