laravel中 指定字段 指定数值排序

$query = Tasks::leftjoin('get_tasks', 'get_tasks.t_id', '=', 'tasks.id')
    ->where('tasks.release_tasks_status', '!=', 0)//剔除掉未开始的任务
    ->where('tasks.channel_id', $channel_id);


// 5:已完成  3:待审核    16进行中  17:失效
if (isset($type))
    $query->where(function ($que) use ($type, $u_id) {
        if ($type == 5 ) {
            $que->where(['get_tasks.task_status' => 5, 'get_tasks.u_id' => $u_id]);
        }
        if ( $type == 3) {
            $que->where(['get_tasks.task_status' => 3, 'get_tasks.u_id' => $u_id]);
        }
        if ($type == 16) {
            //发布任务的状态   0:未开始 1:进行中 2:已失效'
            $que->where(['tasks.release_tasks_status' => 1]);
        }
        if ($type == 17) {
            //发布任务的状态   0:未开始 1:进行中 2:已失效'
            $que->where(['tasks.release_tasks_status' => 2]);
        }

    });

$result = $query->select('tasks.id', 'tasks.release_tasks_status', 'tasks.task_title', 'tasks.task_img', 'tasks.expires_type', 'tasks.expires_start_at', 'expires_end_at', 'get_number', 'complete_number', 'get_tasks.task_status', 'get_tasks.gt_id', 'tasks.operation_id','get_tasks.u_id','tasks.status')
    ->groupBy('id')
    ->orderBy('tasks.is_demand', 'ASC')
    ->orderBy('tasks.id', 'DESC')

     ->orderByRaw("CASE WHEN release_tasks_status = 1 THEN 1 WHEN release_tasks_status = 0 THEN 2 WHEN release_tasks_status = 2 THEN 3 END")



    ->orderByRaw("FIELD(release_tasks_status, " . implode(", ", [1,0,2]) . ")")



    ->get();

上面orderByRaw  是关于指定字段  指定数值排序规则,两种 ,大家可以根据自己的场景选择

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值