laravel中 指定字段 指定数值排序
短信预约 -IT技能 免费直播动态提醒
$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 是关于指定字段 指定数值排序规则,两种 ,大家可以根据自己的场景选择
来源地址:https://blog.csdn.net/qq_42082023/article/details/127882666
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341