limit的用法
我们知道在Mysql里面取最大的数据可以用order by 然后limit 1 取得。那怎么取第二条数据呢。
+----+--------+
| Id | Salary |
+----+--------+
| 1 | 100 |
| 2 | 200 |
| 3 | 300 |
来看怎么取排名第二的数据
方法1,先取得最大的,然后not in 最大的那个,在剩下的取最大的就是第二个。
select Max(Salary ) from Employee where Salary not in (select Max(Salary ) from Employee )
方法2,使用limit
select Salary from Employee order by Salary limit 1,1
方法3,使用limit 和 offset
select Salary from Employee order by limit 1 offset 1
拓展:
Mysql中 limit 和 offset的使用
Limit子句可以被用于强制 SELECT 语句返回指定的记录数。Limit接受一个或两个数字参数。参数必须是一个整数常量。如果给定两个参数,第一个参数指定第一个返回记录行的位置,第二个参数指定返回从那个记录开始往后的数量。
//初始记录行的偏移量是 0(而不是 1):
mysql> SELECT * FROM table LIMIT 5,10; //检索记录行6-15
//为了检索从某一个偏移量到记录集的结束所有的记录行,可以指定第二个参数为 -1:
mysql> SELECT * FROM table LIMIT 95,-1; // 检索记录行 96-last
//如果只给定一个参数,它表示返回最大的记录行数目。换句话说,LIMIT n 等价于 LIMIT 0,n:
mysql> SELECT * FROM table LIMIT 5; //检索前 5 个记录行
offset
偏移量的意思
limit X offset Y
的意思就是,从第Y条开始,选取X条。
limit 1 offset 1(从第2条开始,选一条,所以就是排名第二的那条)
limit X,Y
的意思是,从第X条开始,选取Y条