Tags:

SQL | LIMIT giới hạn số lượng kết quả trả về

Khi làm việc với một database có lượng dữ liệu lớn, mỗi câu truy vấn có thể trả về rất nhiều kết quả thì việc hiển thị chúng trong cùng một lúc sẽ rất tốn kém tài nguyên. Mệnh đề LIMIT được sinh ra nhằm giải quyết vấn đề này. Nó có các chức năng như:

  • Mệnh đề LIMIT được sử dụng để đặt giới hạn trên về số lượng bộ giá trị được SQL trả về.
  • Điều quan trọng cần lưu ý là mệnh đề này không được hỗ trợ bởi tất cả các phiên bản SQL
  • Mệnh đề LIMIT cũng có thể được chỉ định bằng cách sử dụng mệnh đề SQL 2008 OFFSET / FETCH FIRST
  • Biểu thức limit/offset phải là một số nguyên không âm.

Cách sử dụng LIMIT trong SQL

Ví dụ chúng ta có bảng Student như sau

ROLLNO NAME GRADE
12001 Aditya 9
12002 Sahil 6
12003 Hema 8
12004 Robin 9
12005 Sita 7
12006 Anne 10
12007 Yusuf 7
12008 Alex 5
SELECT *
FROM Student
LIMIT 5;

Output:

12001 Aditya 9
12002 Sahil 6
12003 Hema 8
12004 Robin 9
12005 Sita 7

Sử dụng LIMIT kết hợp với ORDER BY

SELECT *
FROM Student
ORDER BY Grade DESC
LIMIT 3;

Output

12006 Anne 10
12001 Aditya 9
12004 Robin 9
Toán tử LIMIT có thể được sử dụng trong các tình huống như trên, khi chúng ta cần tìm 3 sinh viên đứng đầu trong một lớp và không muốn sử dụng bất kỳ câu lệnh điều kiện nào.

Sử dụng LIMIT kết với với OFFSET

OFFSET có nghĩa là bỏ qua một lượng OFFSET dòng đầu tiên trong kết quả trả về, tập dữ liệu này sẽ được trích xuất tối đa LIMIT dòng trong tập này và trả về kết quả.

SELECT *
FROM Student
LIMIT 5 OFFSET 2
ORDER BY ROLLNO;

Output:

12003 Hema 8
12004 Robin 9
12005 Sita 7
12006 Anne 10
12007 Yusuf 7

LIMIT ALL trong SQL

LIMIT ALL cũng có nghĩa là không giới hạn số lượng dòng dữ liệu trả về.

SELECT *
FROM Student
LIMIT ALL;
0 0 votes
Article Rating
Subscribe
Notify of
guest
1 Comment
Newest
Oldest Most Voted
Inline Feedbacks
View all comments
1
0
Would love your thoughts, please comment.x
()
x