2010-08-03 46 views
9

Tôi muốn giới hạn số lượng hàng mà tôi tìm nạp trong MySQL. Bạn có thể chỉ cho tôi làm thế nào?Giới hạn kết quả truy vấn SQL trong MySQL

ví dụ:

  • 1 truy vấn Tôi muốn lấy chỉ 10.000 hồ sơ đầu tiên
  • truy vấn thứ 2 tôi muốn lấy hồ sơ chỉ từ 10.000 - 20.000

vv

+1

gì cơ sql bạn đang sử dụng? – Fosco

+0

hi, đó là MySQL – chcne

+1

bản sao có thể có của [PHP/MySQL Pagination] (http://stackoverflow.com/questions/3095474/php-mysql-pagination) –

Trả lời

10

Cụm từ bạn đang tìm kiếm là "phân trang". Thật không may, điều này được thực hiện khác nhau tùy thuộc vào công cụ SQL.

Đối với Máy chủ MS SQL, hãy xem số Stack Overflow question này.

Kể từ khi bạn đề cập đến MySQL, nó thực sự khá đơn giản:

SELECT [columns] FROM [a table] LIMIT 10000 
SELECT [columns] FROM [a table] LIMIT 10000 OFFSET 10000 

Bản tuyên bố đầu tiên lấy về kết quả 1-10,000, và báo cáo kết quả thứ hai lấy về kết quả 10,001-20,000.

+0

cảm ơn thats những gì tôi đang tìm kiếm – 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 
0

TSQL

SELECT TOP 10000 ...

PL/SQL

... WHERE ROWNUM < 10000 ...

2

MySQL và hỗ trợ PostgreSQL OFFSET mà thường được sử dụng với một LIMIT mệnh đề.

SELECT column FROM table 
LIMIT 10000 

SELECT column FROM table 
LIMIT 10000 OFFSET 10000 
1

trong mysql bạn làm như sau

SELECT * FROM PERSON_TBL LIMIT 0, 1000 

SELECT * FROM PERSON_TBL LIMIT 1000, 1000 

Query 1 sẽ lấy 1.000 hồ sơ đầu tiên,

Query 2 sẽ lấy tới 1.000 hồ sơ

Cú pháp cho khoản giới hạn

LIMITS OFFSET, ROWCOUNT

đâu ROWCOUNT cho số hàng để lấy

OFFSET cho từ đó hàng để lấy thêm thông tin here

4

Tôi nghĩ rằng các truy vấn sau đây sẽ cung cấp cho bạn kết quả mong muốn

CHỌN * TỪ PERSON_TBL LIMIT 0, 10000

@ query 1 Tôi muốn lấy chỉ 10.000 hồ sơ đầu tiên

SELECT * FROM PERSON_TBL LIMIT 10000,10000

@ truy vấn thứ 2 tôi muốn lấy hồ sơ chỉ từ 10.000 - 20.000

0

trong MySQL:

SELECT * FROM `your_table` LIMIT 0, 10000 

này sẽ hiển thị 10000 kết quả đầu tiên từ cơ sở dữ liệu.

SELECT * FROM `your_table` LIMIT 10000, 20000 

này sẽ hiển thị hồ sơ 10001, 10002, ..., 20000

Các vấn đề liên quan