我正在寻找一种方法来返回一个范围之间的表行,例如,如何在一个有10,000行的表中获得100到200行?
这不是基于行中的任何数据,而主键虽然是增量的,但不能用作索引。
我正在使用一个必须在应用程序中向用户显示的相当大的表。现在我获取所有记录并使用Java数组获取行x到y以通过Ajax(Web应用程序)发送回用户。
这个方法比我想要的时间多得多(虽然不是一次将所有记录发送给用户)所以我只想查询我需要的记录。
感谢任何帮助,谢谢!
答案 0 :(得分:3)
从表格限制100,100
中选择*答案 1 :(得分:0)
SELECT PriceRank, ProductName, UnitPrice
FROM
(SELECT ProductName, UnitPrice,
ROW_NUMBER() OVER(ORDER BY UnitPrice DESC) AS PriceRank
FROM Products
) AS ProductsWithRowNumber
WHERE PriceRank > <i>StartRowIndex</i> AND
PriceRank <= (<i>StartRowIndex</i> + <i>MaximumRows</i>)
答案 2 :(得分:0)
您可以使用LIMIT,但您也必须订购行。
select *
from table
order by id -- very important
limit 100,100
如果您没有订购行,理论上,在更改起始行时,您总是可以获得相同的 100行。这是因为无序查询可以按任何顺序返回行,并且它将根据同时运行的其他查询以及在内存中缓存的行等而有所不同。