首页 > 解决方案 > 带条件的 SQL 排序

问题描述

我有一张有球员的桌子。管理员想要按条件对玩家进行排序。如果列activerank = 1,则播放器添加到排序,否则如果activerank = 2播放器应显示在播放器末尾。我怎样才能做到这一点?

这是我的查询,没有这个条件:

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

标签: mysqlsqlconditional

解决方案


您可以通过 activerank Ascending 使用额外的排序一阶

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

在此查询中,拥有的玩家activerank = 1将排在第一位,并将根据排名在其中排序,拥有的玩家activerank = 2将排在最后

对于更高级的排序,我建议使用CASE CLAUSE


推荐阅读