2009-10-08 46 views
0

信我有一个表,其中每一行是选择行与相关投票的用户名算分页和开始从DB

的目标是通过用户名做分页

,因此您可以点击字母C,并获得到C的

但如果有只喜欢2级C的,那么你想显示18德公司以及 或12 D'S和6 E公司

让我怎么找哪里开始 查询像,选择无论从任何限制XX T,20 我如何找到XX所在的C的开始,F的开始,等

基本上把第一个字母为一个数字,然后选择前20

+0

你可以从答案看,语法取决于哪个DBMS所使用。 – 2009-10-08 18:42:07

回答

4

SELECT * FROM表 其中name> = 'C' 按名称顺序 极限20

+1

好吧,这几乎是如此简单,我很尴尬 – Matt 2009-10-08 18:41:48

+0

我认为这是错的方法。如果有40个Cs,下一页怎么办? – DVK 2009-10-08 18:45:57

+0

@DVK:您将保存上一页的最后一页并更改>值。 – 2009-10-08 18:50:34

3
SELECT TOP 20 * FROM [Table] WHERE [username] >= 'C' ORDER BY [username] 
1

你总是可以选择顶部20

SELECT Top 20 * FROM Users WHERE Username >= 'C' ORDER BY Username 
1

最好的方法(假设页转到Web服务器和网页#N从Web服务器请求):

select bottom 20 from 
(select top N*20 * 
from myTable 
order by username 
) TOPNPAGES