2011-11-30 91 views
2

我是新來的sql(和sqlite),到目前爲止,我已經瞭解到我需要使用count來獲取查詢返回的行數。但是,如果我得到例如10'000個結果,並希望將它們分成10個「頁」,我想只在一頁上顯示0-1'000的結果,在另一頁上顯示1'000-2'000,等等。 。Sqlite:如何顯示結果X到Y

我該如何編寫一個只顯示我感興趣的結果的sql查詢?我想我會做這樣的事情:

select * 
from sometable 
where somecol like '%whatever%' 
    AND resultcount > 1000 
    AND resultcount < 2000; 

我道歉,如果這已經回答過了,但我不知道我應該尋找,至今我還沒有發現,是很簡單的任何解決方案初學者;)

回答

3

你可以使用sqlite的LIMIT和OFFSET功能。

SELECT * 
FROM sometable 
WHERE somecol LIKE '%whatever%' 
LIMIT 1000 OFFSET 1000 

LIMIT X OFFSET Y是X記錄的極限,用Y軸偏移

所以LIMIT 10 OFFSET 50會返回10條記錄,有50記錄偏移。


還有LIMIT <skip>, <count>語法,如果你喜歡這種風格

+0

謝謝你的回答。 – Waxhead

1

你所尋找的是一個SELECT語句中的「極限」的一部分。

的SQLite的select語句,包括限制完整的文檔,可以在這裏找到:http://www.sqlite.org/lang_select.html

一個例子: 如果你想從表中得到10排,排50說明,你可以使用

SELECT * FROM mytable LIMIT 50,10 
+0

謝謝你的回答。 – Waxhead

1

這可能做的伎倆:

SELECT * FROM sometable 
WHERE somecol like '%whatever%'' 
LIMIT 100 OFFSET x 

其中X是哪裏的記錄應啓動R偏移值從...開始。

+0

謝謝你的回答。 – Waxhead