SQL命令停在ID处

时间:2011-12-08 20:12:50

标签: mysql

我有MySQL表IDusernamepoints

我试图按点排序表(几个用户可以有相同数量的点),但是:我试图只在某个ID之前有条目。因此,如果查询首先生成一个有序表,我希望将其所有条目排序,但是在ID ='40'时停止,因为我只对订购更高的玩家感兴趣(不一定更好,他们可以拥有与玩家#40相同数量的积分。

如果是,那怎么可能?

编辑:不,我不想将查询结果限制为40行,因为我不知道有多少玩家比玩家#40更好。我只希望查询在ID为40的条目处停止,而不是在row_number = 40。

编辑2:问题是:积分超过玩家#40的玩家仍然可以拥有更高的ID,这就是为什么不能只说WHERE ID <= 40

编辑3:

enter image description here

看到这张照片,我只想要玩家him的结果直到玩家jackpot,而玩家friend的积分与jackpot相同。这有可能吗?顺便说一句,这些名字是任意的,我只是没想到任何更好的用户名。

2 个答案:

答案 0 :(得分:3)

如果我理解你的问题是正确的,那么你正在寻找一个比积分值高于玩家得分40的球员名单。

如果是这样的话:

  

SELECT * FROM table WHERE points&gt; (SELECT b.points FROM table b WHERE   b.ID = '40')ORDER BY points DESC

答案 1 :(得分:0)

答案可以这么简单吗? :

SELECT * FROM table_name WHERE `id` <= '40' ORDER BY `id`,`username`,`points`

当然,您可以通过将table_name更改为实际值来调整查询到您的表格,如果您不想选择所有列,请将*替换为字段列表想...

如果我没有得到它,让我知道我错过了什么,我将编辑我的答案