带条件的sql排序

bkkx9g8r  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(287)

关闭。这个问题需要细节或清晰。它目前不接受答案。
**想改进这个问题吗?**通过编辑这个帖子来添加细节并澄清问题。

两年前关门了。
改进这个问题
我有一张有球员的table。管理员想根据条件对玩家进行排序。if列 activerank = 1 然后玩家增加排序,如果 activerank = 2 球员应该出现在球员的末尾。我该怎么做?
这是我的问题,没有这个条件:

$sql = '
  SELECT c.*
  FROM `child` AS c
  WHERE  '
  c.`id` > 0
  ' ORDER BY c.`rank` DESC ';
ohtdti5x

ohtdti5x1#

您可以按activerank升序使用额外的排序

SELECT c.*
  FROM `child` AS c
  WHERE  '
  c.`id` > 0
  ' ORDER BY activerank ASC,  c.`rank` DESC '

在这个查询中 activerank = 1 将是第一个,并将在其中排序,根据职级和球员与 activerank = 2 将是最后一个
对于更高级的排序,我建议使用case子句

jqjz2hbq

jqjz2hbq2#

你可以尝试添加 CASE WHENORDER BY ,并使用多个 ORDER BY ```
SELECT c.*
FROM child AS c
WHERE 'c.id > 0'
ORDER BY c.rank DESC,
(
CASE activerank
WHEN 1 THEN 0
WHEN 2 THEN 1
END
)

相关问题