查询获得第三高分

use*_*308 0 mysql sql ranking

我有一个student_table表,其中包含两列student_name(带有uniqe约束),student_marks.从这张表中,我需要获得拥有第三高分的学生的记录.

我试过这个,但这是不正确的:

select * from student_table orderby(marks) enum(marks)=3;
Run Code Online (Sandbox Code Playgroud)

如何更正此查询?

Muh*_*eel 5

这是一个非常简单的解决方案

select *
from marks
order by marks desc
limit 2,1
Run Code Online (Sandbox Code Playgroud)

有限制你可以使用偏移量和长度.这里offset设置为2,因为它从0开始.对于第三个记录.1是限制.

这是另一种解决方案

$res=mysql_query("SELECT * from marks order by marks desc");
mysql_data_seek($res, 2);
$row=mysql_fetch_assoc($res));
Run Code Online (Sandbox Code Playgroud)