2011-11-30 89 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