12

这可能是一个非常基本的问题,但我正在努力仅根据行范围查询表中的特定行。

假设我有一个表 ABC,其中填充了 1000 行。现在我想要一个 sql 查询,以便我可以获取前 100 行(即范围 1 到 100),然后获取接下来的 100 行(101 到 200),依此类推,直到我完成所有行。这应该在不查询/过滤表的 id 或任何列 id 的情况下完成。

我无法弄清楚,因为我只接受过查询 WHERE 子句中特定列的培训,所以如果有人能帮忙,我将不胜感激

4

2 回答 2

16

您必须在查询中使用该LIMIT子句。SELECTMySQL 允许您为子句设置两个参数,偏移量(第一个参数)和要获取的行数(第二个参数)。

SELECT * FROM `ABC` LIMIT 0, 100
SELECT * FROM `ABC` LIMIT 100, 100
SELECT * FROM `ABC` LIMIT 200, 100
-- etc...

但是,您不能保证这些行的顺序,除非您使用该ORDER BY子句按一个或多个特定列进行排序。

在此处阅读有关该SELECT声明的更多信息:http: //dev.mysql.com/doc/refman/5.6/en/select.html

于 2013-05-22T19:12:48.250 回答
2

你可以 在mysql中使用limit 。

限制接受 2 个参数。

这将返回 1-10 条记录。

select * from abcd limit 10

这将返回 10-20 条记录。

select * from abcd limit 10,10

这将返回 20-30 条记录。

select * from abcd limit 20,10
于 2013-05-22T19:14:16.713 回答