mysql - MySQL - 选择具有字段值 > 10 且不按此字段排序的第一行的查询
问题描述
我想 SELECT
在我的玩家表中创建一个结果,第一行是玩了 10 场以上游戏的玩家。阻止我做的事情ORDER BY total_games
是我想慢慢地得到ORDER
以下结果。signin_year
player_type
+--------------+-------------+--------------+--------------+
| 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 和ORDER BY
s 但我看不到让它工作,这甚至可能还是我需要使用子查询?
解决方案
尝试ORDER BY
与CASE
表达式一起使用:
SELECT *
FROM player
ORDER BY
CASE WHEN total_games > 10 THEN 0 ELSE 1 END,
signin_year,
player_type;
这将总共玩了 10 场以上游戏的玩家放在首位,然后是所有其他玩家。在这两个区块中,数据按登录年份升序排序,然后是升序玩家类型。
推荐阅读
- python - 烧瓶pdfkit没有找到css
- html - 如何减小圆形动画搜索按钮的大小?
- javascript - 如何在javascript中的许多字符串中选择数字字符串(仅包含数字的字符串)并忽略其余字符串?
- discord - 禁止后删除消息
- apache - Apache 重定向到本地主机
- angular - Angular 中的父子组件应该共享什么样的数据?
- r - ggplot2: geom_text 如何在条形图中绘制时间?
- c - 如何使用 fscanf 从 C 中带有空格的文件中读取?
- sql - Postgres 将多行获取到单个 json 对象中
- java - 如何创建一个 MyString 类,该类具有在 Java 中实现替换子字符串的方法?