我想编写一个查询,选择1个实体中2个属性具有相同值的行。
这将是在原始SQL中执行此操作的示例:
Select * from users u where u.username = u.lastname
laravel是否有任何方法可以将2列名称作为参数并返回匹配结果?
你需要的是一个DB::raw
表达式:
DB::table('users')
->where('username', '=', DB::raw('lastname'))
->get();
DB::raw
实际上唯一做的就是告诉查询解释器不要像任何其他字符串值那样对待'lastname'
,而只是在SQL中插入它。
在Laravel 5中,为了更清晰的代码,有now whereColumn
:
Users::whereColumn('username', 'lastname')->get();