【问题标题】:MySQL highscore ranking for a specific user特定用户的 MySQL 高分排名
【发布时间】:2015-08-24 11:35:22
【问题描述】:

我正在尝试从我的hs_users 表中检索特定的用户排名,该表具有idusernamescore 列。

我目前有这样的查询,通过对用户进行排名来检索结果:

|         Results         |
|-------------------------|
| username | score | rank |
|----------+-------+------|
| Ozan     | 10000 |    1 |
| Potato   |  8000 |    2 |
| Carrot   |  8000 |    2 |
| Tomato   |  5000 |    4 |

所以用户 tomato 的排名是 4

我尝试了多种组合,从整个 stackoverflow 中检索单个结果及其排名,但只能通过使用 WHERE 子句来检索此结果。

|         Results         |
|-------------------------|
| username | score | rank |
|----------+-------+------|
| Tomato   |  5000 |    1 |

tomato 的等级应该是 4 而不是 1

如果您这样做,请解释您作为答案发送的查询。 :D

关键是要了解它是如何工作的。

谢谢! :)

【问题讨论】:

  • 最好编辑问题以包含创建排名的查询。
  • 您尝试过哪个查询?
  • 您试图检索结果的内容和具体方式是什么?您是否尝试对用户名或等级或两者应用条件?
  • Tomato怎么得了第4名,应该是第3名吧?
  • @SagarPanda 我正试图让用户 tomato 结果排名为“4”。 (在排名时从整个表中检索单个用户。)

标签: mysql


【解决方案1】:

下面的查询填充会为您获取用户名是 Tomato 并且排名是 4 的结果。

SELECT * from hs_users where username= 'Tomato' and rank=4;

如果有多个用户名为“番茄”,并且如果您想要所有这些用户而不考虑他们的等级,那么使用:

SELECT * from hs_users where username= 'Tomato';

【讨论】:

  • 您可以在这里发布您的查询吗?您也可以使用上述查询,而不是使用您的表名结果。
猜你喜欢
  • 1970-01-01
  • 2019-11-30
  • 1970-01-01
  • 2021-10-27
  • 1970-01-01
  • 1970-01-01
  • 2021-06-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多