Có cách nào trong MySQL để có 10 kết quả đầu tiên từ truy vấn SELECT bị bỏ qua không? Tôi muốn nó hoạt động giống như LIMIT.
Có cách nào trong MySQL để có 10 kết quả đầu tiên từ truy vấn SELECT bị bỏ qua không? Tôi muốn nó hoạt động giống như LIMIT.
Câu trả lời:
Sử dụng LIMIT với hai tham số. Ví dụ: để trả về kết quả 11-60 (trong đó kết quả 1 là hàng đầu tiên), hãy sử dụng:
SELECT * FROM foo LIMIT 10, 50
Để biết giải pháp trả về tất cả kết quả, hãy xem câu trả lời của Thomas .
Có một OFFSET cũng sẽ thực hiện thủ thuật:
SELECT column FROM table
LIMIT 10 OFFSET 10
limit 10,10
Từ sách hướng dẫn :
Để truy xuất tất cả các hàng từ một khoảng chênh lệch nhất định cho đến cuối tập kết quả, bạn có thể sử dụng một số lớn nào đó cho tham số thứ hai. Câu lệnh này truy xuất tất cả các hàng từ hàng thứ 96 đến hàng cuối cùng:
SELECT * FROM tbl LIMIT 95,18446744073709551615;
Rõ ràng, bạn nên thay thế 95
bằng 10
. Nhân tiện, số lớn họ sử dụng là 2 ^ 64 - 1.
LIMIT cho phép bạn bỏ qua bất kỳ số hàng nào. Nó có hai tham số và đầu tiên là - có bao nhiêu hàng để bỏ qua
select * from table where id not in (select id from table limit 10)
nơi id
là chìa khóa trong bảng.
Nếu bảng của bạn có thứ tự theo id, bạn có thể dễ dàng thực hiện bằng cách:
select * from table where id > 10