2009-08-16 86 views
0

如何从表中选择特定行?从表中选择特定行

我想做的事情做到像下面这样:

select * from 
    (select * from tablename1 where type=1 order by id desc) 
where rownum = 5 

select * from 
    (select * from tablename1 where type=1 order by id desc) 
where rownum = $variable 
+1

从什么数据库?不同的供应商处理这个不同。 – 2009-08-16 06:33:15

+0

我正在使用mysql db – user156073 2009-08-16 06:41:41

回答

3

使用LIMIT关键字:

SELECT * FROM tablename WHERE (stuff...) LIMIT $rownum,1; 

如果通过2号至LIMIT,它把第一作为偏移和其次作为返回的结果数量(而如果您只传递1个数字,则将其视为多个结果)。因此,要求LIMIT $rownum,1您将只返回一行,这是位于$ rownum位置的那一行(请记住,行从0开始索引)。

+0

这是一个MySQL关键字。 OP在上面发布的是PL/SQL语法。 SQL Server使用'row_number()(按col排序)'。现在你知道了。 – Eric 2009-08-16 06:39:15

+0

实际上,OP发布的是有效的mysql语法(至少,不包括他们首先询问的行号位)。更不用说他们的评论说他们正在使用MySQL。 – Amber 2009-08-16 06:44:40

+0

@Dav:'rownum'在MySQL中不是一个函数,OP在*我后发布了这个注释*。我不是时间旅行者。然而。你得到+ 1的正确答案:) – Eric 2009-08-16 06:45:32