如果有办法根据行号查询?像:
select rownumber from table;
我想做什么: 我使用子查询计算了表中的总行数,现在我想只显示最后一行。
菜鸟回答:
我想获得第二高薪。所以这就是我所做的:
select * from gg where salary< (select max(salary) from gg) order by salary desc limit 1
这对第N个最高薪水不起作用,仅为第二高。我很新,所以我只想按自己的方法获得第二名。
答案 0 :(得分:2)
虽然我不确定你为什么想要一个特定的rownumer,你可以这样做:
select * from table LIMIT rownumer, 1;
在http://dev.mysql.com/doc/refman/5.0/en/select.html
上详细了解详情所以,如果你想要第3行,你会做:
SELECT * FROM table LIMIT 3,1;
如果您想使用第6至第16行,您将使用:
SELECT * FROM table LIMIT 6,10
请注意,这仅对获取随机行或添加SORT BY有用。否则你将无法确定将返回哪一行......
答案 1 :(得分:1)
如果您只想限制查询只返回特定数量的行,则可以使用内置LIMIT row_count OFFSET offset
子句的Mysql。但是,如果要选择排名编号,请使用:
SET @rownum = 0;
Select *
FROM
(
Select *, (@rownum := @rownum+1) as rank
FROM t
) sub
更新:如果你想
我想只显示最后一个。
然后你可以这样做:
SELECT *
FROM Yourquery
ORDER BY SomeField DESC --This how you determine the last one based on the order
LIMIT 1;
答案 2 :(得分:1)
如果要选择带行号的记录,请参阅:
SELECT (@rank := @rank + 1) AS row_number
,contract_id, price1, price2, price3
FROM t1, (SELECT @rank := 0) tmp;
如果您只想要行号,请看:
SELECT (@rank := @rank + 1) AS row_number
FROM t1, (SELECT @rank := 0) tmp
答案 3 :(得分:0)
select * from table limit [offset,limit]
偏移是您要开始的行号,
limit 是您希望从偏移量
开始的行数所以你可以像
一样使用它select * from table limit rownumber,1
答案 4 :(得分:0)
没有订购没有行号,但是如果你确实有排序顺序那么
SELECT * FROM thing ORDER BY ordering LIMIT 1 OFFSET your_row;