在laravel查询构建器中选择具有2列相等值的行

时间:2014-09-20 19:36:28

标签: laravel

我想编写一个查询,选择来自1个实体的2个属性具有相同值的行。

这是在原始SQL中执行此操作的示例:

Select * from users u where u.username = u.lastname

laravel是否有任何方法可以将2列名称作为参数并返回匹配的结果?

2 个答案:

答案 0 :(得分:29)

您需要的是DB::raw表达式:

DB::table('users')
    ->where('username', '=', DB::raw('lastname'))
    ->get();

DB::raw实际做的唯一事情是告诉查询解释器'lastname'视为任何其他字符串值,而只是插入它在SQL中原样。

http://laravel.com/docs/queries#raw-expressions

答案 1 :(得分:3)

在Laravel 5中,为了更清晰的代码,有now whereColumn

Users::whereColumn('username', 'lastname')->get();