【问题标题】:Display the numerical index order of results in mySQL as a additional column将 mySQL 中结果的数字索引顺序显示为附加列
【发布时间】:2013-10-09 14:57:08
【问题描述】:

有史以来第一个 q Whohoo!

我有一个带有数据的 mySQL 表

**username**   **score**   
Count Joe         278     
Count Joe         255
Count Joe         298
Count Joe         289

我在显示以下结果集时遇到问题:

**RANK** **USERNAME** **SCORE**
1 Count Joe 255
2 Count Joe 278
3 Count Joe 289
4 Count Joe 298

目前正在回归

**RANK** **USERNAME** **SCORE**
    1 Count Joe 255
    22 Count Joe 278
    32 Count Joe 289
    18 Count Joe 298

使用

SET @ROW=0; SELECT @ROW:=@ROW + 1 AS rank, username, total FROM game_scores GROUP BY username ORDER BY total ASC LIMIT 10

上面的查询似乎返回了查询表中的索引位置或用户。

【问题讨论】:

  • 你想要的输出是什么?您的查询将在结果集上放置伪行号(如果您在查询之前将 @row 初始化为 0)——这不是您想要的吗?
  • @DMc 刚刚编辑了那个。忘记添加到代码中了。

标签: mysql sql-order-by


【解决方案1】:
SELECT @curRow := @curRow + 1 AS rank, s1.*
FROM
(
    SELECT   username, score
    FROM     scores    
    GROUP BY username ORDER BY score ASC LIMIT 10
) AS s1
JOIN (SELECT @curRow := 0) r

【讨论】:

  • 嗨托尼。感谢答案,不幸的是返回与我的查询相同的结果集。我已经通过更具描述性来更新问题。
  • 已编辑答案。试试看。
猜你喜欢
  • 2014-09-24
  • 2021-08-18
  • 2015-06-23
  • 2015-11-03
  • 2011-06-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多