2009-08-16 118 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