【发布时间】:2017-03-11 18:53:20
【问题描述】:
我使用的是最新的 Laravel 5.4
我正在尝试做一个简单的查询来按名称搜索用户。为 MySQL 编写的查询如下所示:
SELECT *
FROM users
WHERE upper(name) LIKE '%FOO%';
我正在尝试使其与 Eloquent 一起使用。我尝试过但失败的事情:
User::where('upper(name)', 'LIKE', '%FOO%')->get()DB::table('users')->where('upper(name)', 'LIKE', '%FOO%')->get()
两者都失败并出现以下错误:
Illuminate\Database\QueryException with message 'SQLSTATE[42S22]: Column not found: 1054 Unknown column 'upper(name)' in 'where clause' (SQL: select * from
userswhereupper(name)LIKE %FOO %)'
查询似乎失败了,因为 Eloquent 将 upper(email) 语句用反引号(“`”,“`”)包装起来。有没有办法解决这个问题,还是我必须使用特定的 eloquent 函数来将列转换为大写、小写等?
【问题讨论】:
标签: php laravel laravel-5 eloquent sql-like