MySQL-选择具有字段值的第一行的查询>;10未按此字段排序
我想在我的玩家表中做一个MySQL-选择具有字段值的第一行的查询>;10未按此字段排序,mysql,sql-order-by,Mysql,Sql Order By,我想在我的玩家表中做一个选择,结果是,第一行是玩了10场以上游戏的玩家。阻止我按总游戏数下单的原因是,我想先下单一年,然后按玩家类型下单,得到以下结果 +--------------+-------------+--------------+--------------+ | username | signin_year | player_type | total_games | +--------------+-------------+--------------+-------
选择
,结果是,第一行是玩了10场以上游戏的玩家。阻止我按总游戏数下单的原因是,我想先下单一年,然后按玩家类型下单,得到以下结果
+--------------+-------------+--------------+--------------+
| username | signin_year | player_type | total_games |
+--------------+-------------+--------------+--------------+
| John Doe | 2019 | 10 | 62 |
| Jon Skeet | 2019 | 20 | 2479 |
| Shmebulock | 2020 | 10 | 82 |
| Norman | 2020 | 20 | 154 |
| Bob | 2019 | 10 | 3 |
| Alice | 2020 | 10 | 9 |
| Community | 2020 | 20 | -1 |
+--------------+-------------+--------------+--------------+
我尝试了一系列的
WHERE
s和orderby
s,但我看不出它们能起作用,这是可能的还是我需要使用子查询?尝试使用orderby
和CASE
表达式:
SELECT *
FROM player
ORDER BY
CASE WHEN total_games > 10 THEN 0 ELSE 1 END,
signin_year,
player_type;
这使得总共玩了10场以上游戏的玩家排在第一位,然后是所有其他玩家。在这两个区块中,数据按签约年份升序排序,然后按升序球员类型进行排序。是的,这正是我想要的,谢谢