Fireworks2737

418 经验值

Query Builder:

$subQuery = DB::table('Table')
    ->select(
        'task_id', 'user_id', 
        DB::raw("
            if(avg(`task_status`) <> 3 
                && avg(`task_status`) <> 0 
                && (max(`task_status`) = 3 
                    || min(`task_status`) = 0
                ), '检查中', ''
            ) as `status`
        ")
    )
    ->groupBy('user_id')
    ->groupBy('task_id');

$data = DB::table(DB::raw("({$subQuery->toSql()}) as sub"))
    ->mergeBindings($subQuery)
    ->where('status', '检查中')
    ->get();

dd($data);

源生Sql:

select * from 
    (select `task_id`,`user_id`,
        if(avg(`task_status`) <> 3 
            && avg(`task_status`) <> 0 
            && (max(`task_status`) = 3
                || min(`task_status`) = 0
            ), '检查中', ''
        ) as `status`
    from `Table`
    group by user_id,task_id
    ) as s
where s.status = '检查中'

有表Table,现有如下字段

CREATE TABLE `Table` (
`table_id`  int(11) NOT NULL AUTO_INCREMENT COMMENT '主键自增',
`user_id`  int(11) NOT NULL COMMENT '检查人ID' ,
`task_id`  int(11) NOT NULL COMMENT '检查任务ID' ,
`task_status`  tinyint(4) NOT NULL COMMENT '检查状态(0:待检查,1:ok,2:error,3:关闭)' ,
PRIMARY KEY (`table_id`)
)

一个检查人(user_id)可能拥有多个同一检查任务(task_id)

查询条件如下

查询有哪些任务(task_id)是检查中的,查出user_id和task_id

状态:

  • 若全部为0或3则待检查

  • 有(0或者3)还有(1或者2)的话为检查中

  • 全部为1或2为检查完成

请教若用Laravel的Query Builder查询语句怎么写..

感谢!

请问大家Laravel5.2Cookie怎么使用,尝试了三种方法均未成功
`
Cookie::make('name','value',1);
Cookie::queue('name','value',1);
response()->withCookie(cookie('name','value',1));
`