我有一个包含 3500 行的 SQL 表(实际上还有更多行)。我需要知道是否有可能获取所有并将它们分成一组,每组 1000 个。我知道最后一组是 500 行,但这很好。
我需要执行自动查询以生成最多包含 1000 个条目的站点地图。
更新
所以我需要上述查询中的 4 组,前 3 个数组中有 1000 个条目,最后一个数组中有 500 个条目。
最佳答案
如果您想从 SQL 查询级别执行此操作,可以使用 LIMIT ( documentation ) 提供的 OFFSET:
SELECT * FROM orders LIMIT 1000 OFFSET 0
SELECT * FROM orders LIMIT 1000 OFFSET 1000
SELECT * FROM orders LIMIT 1000 OFFSET 2000
等等
较短的语法是
SELECT * FROM orders LIMIT 1000, 0
SELECT * FROM orders LIMIT 1000, 1000
SELECT * FROM orders LIMIT 1000, 2000
但是如果你想用一个查询加载所有 3500 行,使用 array_chunk()
( LINK ):
$allRows = [/* your data */];
$chunkSize = 1000;
$chunks = \array_chunk($allRows, $chunkSize);
关于php - 是否可以使用 LIMIT 数据在 PHP MySQL 查询中分离结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56699172/