2010-12-09 26 views
4

我有用戶列表表格,在我的列表頁面中,有分頁,所以現在我發現sql時單擊分頁,即。當點擊1獲得前10的記錄,從表中,當點擊2得到11至20的記錄,當點擊3得到21至30的記錄,如何在SQL樣子,SQL從分頁獲取列表

在此先感謝

我使用的Informix DB

+0

這個問題有一些Informix的有用的信息:http://stackoverflow.com/questions/1033729/informix-subqueries-with-first-option – 2010-12-09 02:46:32

回答

8

的Informix有類似的條款,但來自不同的LIMIT和OFFSET:

SELECT SKIP n LIMIT m ... 

您可以在限價的首次使用。

請參閱IDS 11.70 InfoCenter或針對較早版本的IDS的類似位置。

1

此評論被寫入之前OP表示,他/她是使用INFORMIX數據庫

MySQL和PostgreSQL的支持非常酷的功能,稱爲偏移通常用LIMIT子句中使用。

LIMIT子句用於限制SQL語句中返回結果的數量。所以,如果你有一臺1000行,但只想要回第10位,你會做這樣的事情:

SELECT column FROM table 
LIMIT 10 

這是類似於Microsoft SQL Server上的TOP子句。然而,LIMIT子句總是在MySQL和PostgreSQL的查詢結束時進行。

現在假設你想顯示結果11-20。隨着關鍵字抵消其一樣簡單,下面的查詢將做到:

SELECT column FROM table 
LIMIT 10 OFFSET 10 

這可以很容易地編寫多頁結果或分頁與SQL。通常使用的方法是選擇所有記錄,然後在應用程序服務器層進行篩選,而不是直接在數據庫上進行篩選。就像你會想象在數據庫上這樣做會產生更好的性能。

如果你想顯示結果21-30,使用以下查詢:

SELECT column FROM table 
LIMIT 10 OFFSET 20 
+0

-1。即便如此,這個答案對於解決OP所面臨的問題並不是非常有用。你的其他答案更有用,所以我給了+1。 – 2010-12-09 03:04:51

1

現在你指出,你正在使用Informix,該LIMIT子句將無法正常工作。您是否可以將選擇放入數組中並從數組中調用所需的數據?