基于聚合字段的条件查询

时间:2018-02-16 08:38:16

标签: laravel

鉴于我有这个简单的查询:

$builder = User::select(DB::raw('users.age as age, users.restrict as restrict'))
               ->whereBetween("user.id",$id)
               ->get();

有没有办法让用户age低于restrict列?

2 个答案:

答案 0 :(得分:1)

由于agerestrict都是列,因此请使用whereColumn()方法。此外,您似乎只想获取ID为$ids数组的记录。因此,请使用whereIn()

User::whereColumn('age', '<', 'restrict')->whereIn('id', $ids)->get();

答案 1 :(得分:0)

->where("user_id", $id)只返回一个用户!不是吗?

$users = DB::table('users')->whereBetween("id",$ids)
                           ->where("age",'<','restrict')->get();

或者

$users = User::where("age",'<','restrict')->whereBetween("id",$ids)->get();