在MySQL中限制SQL查询结果

时间:2010-08-03 18:19:03

标签: sql mysql pagination

我想限制我在MySQL中获取的行数。你能告诉我怎么样吗?

例如:

  • 第一次查询我想只检索前10,000条记录
  • 第二次查询我想只检索10,000 - 20,000
  • 的记录

7 个答案:

答案 0 :(得分:11)

你正在寻找的术语是“分页”。不幸的是,这取决于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。

答案 1 :(得分:4)

我认为以下查询会为您提供所需的结果

  

SELECT * FROM PERSON_TBL LIMIT 0,10000

@ 1st query我想只检索前10,000条记录

  

SELECT * FROM PERSON_TBL LIMIT 10000,10000

@ 2nd query我想只检索10,000 - 20,000

的记录

答案 2 :(得分:3)

select top x * from table in SQL Server

select * from table where ROWNUM < x in Oracle

select * from table limit x in MySQL

答案 3 :(得分:2)

MySQL和PostgreSQL支持OFFSET,它通常与LIMIT子句一起使用。

SELECT column FROM table
LIMIT 10000

SELECT column FROM table
LIMIT 10000 OFFSET 10000

答案 4 :(得分:1)

在mysql中你做如下

SELECT * FROM PERSON_TBL LIMIT 0, 1000 

SELECT * FROM PERSON_TBL LIMIT 1000, 1000 

查询1将获取前1000条记录,

查询2将获取下一个1000条记录

限制条款的语法

LIMITS OFFSET,ROWCOUNT

其中 ROWCOUNT给出要获取的行数

OFFSET给出要从哪一行获取 更多信息here

答案 5 :(得分:0)

TSQL

SELECT TOP 10000 ...

PL / SQL

... WHERE ROWNUM < 10000 ...

答案 6 :(得分:0)

MySQL中的

SELECT * FROM `your_table` LIMIT 0, 10000 

这将显示数据库中的前10000个结果。

 SELECT * FROM `your_table` LIMIT 10000, 20000 

这将显示记录10001,10002,...,20000