gpt4 book ai didi

php - 使用 laravel 使用 2 列按查询排序

转载 作者:行者123 更新时间:2023-11-30 21:43:40 25 4
gpt4 key购买 nike

这是我的数据库结构示例:

id |    name    |   role   |   login_status   |
-----------------------------------------------
1 mark user 1
2 john lawyer 0
3 david user 0
4 erik lawyer 0

我想要的是以这样一种方式来订购它们,即 lawyer 的用户角色将位于列表顶部,后面是值为 1 的用户在login_status柱子。

我用了orderBy('login_status','desc')对于 login_status 列,但我很难处理 role 的情况专栏。

预期输出:

- john
- erik
- mark
- david

如有任何帮助,我们将不胜感激。谢谢。

最佳答案

您可以使用case 表达式作为条件

->orderByRaw("CASE WHEN role ='lawyer' THEN 1 ELSE 0 END DESC")
->orderBy( 'login_status', 'DESC' );

普通的sql就像

select *
from demo
order by CASE WHEN role ='lawyer' THEN 1 ELSE 0 END DESC, login_status DESC

Demo

或者你可以让你的订单条款更短,比如

order by role ='lawyer' DESC, login_status DESC

Demo

关于php - 使用 laravel 使用 2 列按查询排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50460746/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com