2010-08-03 4 views
9

Я хотел бы ограничить количество строк, которые я получаю в MySQL. Можете ли вы показать мне, как?Лимит результата SQL-запроса в MySQL

например:

  • первый запрос я хотел бы получить только в первых 10000 записей
  • второй запрос, я хотел бы получить только записи от 10000 - 20.000

и т.д.

+1

, что SQL двигателя вы используете? – Fosco

+0

привет, это MySQL – chcne

+1

возможный дубликат [PHP/MySQL Pagination] (http://stackoverflow.com/questions/3095474/php-mysql-pagination) –

ответ

10

Термин, который вы ищете, это «разбиение на страницы». К сожалению, это делается по-разному в зависимости от механизма 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.

+0

спасибо, что я искал – chcne

3
select top x * from table in SQL Server 

select * from table where ROWNUM < x in Oracle 

select * from table limit x in MySQL 
2

MySQL и поддержка PostgreSQL OFFSET, который обычно используется с LIMIT пункт.

SELECT column FROM table 
LIMIT 10000 

SELECT column FROM table 
LIMIT 10000 OFFSET 10000 
1

в MySQL вы выполните следующие действия

SELECT * FROM PERSON_TBL LIMIT 0, 1000 

SELECT * FROM PERSON_TBL LIMIT 1000, 1000 

Запрос 1 будет получать первые 1000 записей,

Query 2 будет получать следующие 1000 записей

Синтаксис статьи ограничивает

ПРЕДЕЛЫ СМЕЩЕНИЯ, ROWCOUNT

Где ROWCOUNT дать номер строки для извлечения

OFFSET дает, из какой строки, чтобы принести больше, INFO here

4

Я думаю, что следующие запросы даст вам желаемый результат

SELECT * FROM PERSON_TBL LIMIT 0, 10000

@ 1 запрос я хотел бы получить только первые 10000 записей

SELECT * FROM PERSON_TBL LIMIT 10000,10000

@ 2 запроса я хотел бы получить только записи от 10000 - 20000

0

в MySQL:

SELECT * FROM `your_table` LIMIT 0, 10000 

Это покажет первые 10000 результатов из базы данных.

SELECT * FROM `your_table` LIMIT 10000, 20000 

Это покажет запись 10001, 10002, ..., 20000

Смежные вопросы