关键点:LIMIT
在MySQL教程网上找到介绍
The LIMIT
clause is used in the SELECT
statement to constrain the number of rows to return. The LIMIT
clause accepts one or two arguments. The values of both arguments must be zero or positive integers.
大意是,LIMIT用在SELECT语句中,用来限制返回的行数,LIMIT可以接收1到2个参数,两个参数都必须大于或等于零。示例:
SELECT
select_list
FROM
table_name
LIMIT [offset,] row_count;
offset:指定了偏移量,最小值是0,第一条数据的偏移量是0.
row_count:指定了返回的行数
当只有一个参数时表示返回的最大条数。
-- LIMIT 1 ,表示最多返回1条
SELECT * FROM student_course where cid = 1 LIMIT 1;
当有两个参数时,建议联合ORDER BY 一起使用。没有排序默认是按从小到大排序返回的,为了语义明确,需要明确指定排序。
SELECT select_list
FROM table_name
ORDER BY order_expression
LIMIT offset, row_count;
所以返回第二大的数据SQL大概如下。例如返回某课程成绩排第二的分数
SELECT score FROM student_course where cid = 1 GROUP BY sid ORDER BY score DESC LIMIT 1,1;
另,LIMIT的另一种写法也可以。LIMIT 1 OFFSET 1;
SELECT score FROM student_course where cid = 1 GROUP BY sid ORDER BY score DESC LIMIT 1 OFFSET 1;