【发布时间】:2011-03-24 21:23:12
【问题描述】:
我想限制我在 MySQL 中获取的行数。你能告诉我怎么做吗?
例如:
- 第一个查询我只想检索前 10,000 条记录
- 第二个查询我想只检索 10,000 - 20,000 的记录
等
【问题讨论】:
-
PHP/MySQL Pagination的可能重复
标签: sql mysql pagination
我想限制我在 MySQL 中获取的行数。你能告诉我怎么做吗?
例如:
等
【问题讨论】:
标签: sql mysql pagination
我认为下面的查询会给你想要的结果
SELECT * FROM PERSON_TBL LIMIT 0, 10000
@ 1st query 我只想检索前 10,000 条记录
SELECT * FROM PERSON_TBL LIMIT 10000,10000
@ 2nd query 我想只检索 10,000 - 20,000 的记录
【讨论】:
在 MySQL 中:
SELECT * FROM `your_table` LIMIT 0, 10000
这将显示数据库中的前 10000 个结果。
SELECT * FROM `your_table` LIMIT 10000, 20000
这将显示记录 10001、10002、...、20000
【讨论】:
您要查找的术语是“分页”。不幸的是,这取决于 SQL 引擎。
对于 MS SQL Server,请参阅此Stack Overflow question。
既然你提到了MySQL,其实很简单:
SELECT [columns] FROM [a table] LIMIT 10000
SELECT [columns] FROM [a table] LIMIT 10000 OFFSET 10000
第一个语句获取结果 1-10,000,第二个语句获取结果 10,001-20,000。
【讨论】:
在mysql中你可以这样做
SELECT * FROM PERSON_TBL LIMIT 0, 1000
SELECT * FROM PERSON_TBL LIMIT 1000, 1000
查询 1 将获取前 1000 条记录,
查询 2 将获取接下来的 1000 条记录
limits 子句的语法
限制偏移,行数
在哪里 ROWCOUNT 给出要获取的行数
OFFSET 给出从哪一行获取 更多信息here
【讨论】:
MySQL 和 PostgreSQL 支持 OFFSET,通常与 LIMIT 子句一起使用。
SELECT column FROM table
LIMIT 10000
SELECT column FROM table
LIMIT 10000 OFFSET 10000
【讨论】:
TSQL
SELECT TOP 10000 ...
PL/SQL
...WHERE ROWNUM < 10000...
【讨论】:
select top x * from table in SQL Server
select * from table where ROWNUM < x in Oracle
select * from table limit x in MySQL
【讨论】: