如何获得MySqL中唯一的第二好成绩?不是其他人

时间:2017-07-20 18:45:44

标签: php mysql

我有一个服务器whit whitigames,我有问题,我的数据库,我需要查询mysql只有第二个最好的分数名称..谁能帮助我? 这是我的数据库:

DATA_BASE

name  | kills 
------+------
Leon  | 22    
Andy  | 14    
Brian | 8  

我需要得到安迪的名字,并从安迪身上杀死! 代码:

"SELECT * FROM `DATA_BASE` ORDER BY `kills` DESC"

请帮助我!我可以使用限制来做到这一点吗?我该怎么办? THKS

5 个答案:

答案 0 :(得分:2)

您可以使用LIMIT关键字,如下所示:

 SELECT * FROM DATA_BASE ORDER BY kills DESC LIMIT 1, 1

答案 1 :(得分:1)

这应该可以解决问题:

SELECT * FROM DATA_BASE ORDER BY kills DESC LIMIT 1 OFFSET 1;

LIMIT 1限制所选行数,OFFSET 1将行偏移1,导致仅选择第二行。

答案 2 :(得分:0)

尝试:

SELECT name FROM DATA_BASE ORDER BY kills DESC LIMIT 1,1

这应该只返回第二个,因为我们想要1个选项(第二个数字),我们想要将它偏移1(第一个数字)

答案 3 :(得分:0)

试试吧。 应限制为1个记录并从记录2开始。

"SELECT * FROM DATA_BASE ORDER BY kills DESC LIMIT 1 OFFSET 1" 

答案 4 :(得分:0)

SELECT * FROM (SELECT * FROM DATA_BASE ORDER BY kills DESC LIMIT 2) AS DB ORDER BY kills LIMIT 1;

我们可以通过使用MAX本机函数而不使用LIMIT来做同样的事情:

SELECT MAX(kills) FROM DATA_BASE WHERE kills NOT IN ( SELECT Max(kills) FROM DATA_BASE);

与之前的

相比更容易