Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Cách giới hạn hàng trong tập kết quả MySQL

Vấn đề:

Bạn muốn giới hạn số hàng trong tập hợp kết quả trong MySQL.

Ví dụ:

Cơ sở dữ liệu của chúng tôi có một bảng có tên là student với dữ liệu trong các cột id , first_name , last_nameage .

id first_name last_name tuổi
1 Steven Watson 25
2 Lisa Anderson 19
3 Alice Miller 19
4 Mary Màu nâu 25
5 Lucy Watson 25
6 Michael Jackson 22

Hãy chọn tên đầy đủ và tuổi của học sinh, nhưng giới hạn các hàng được trả về là ba.

Giải pháp:

SELECT first_name, last_name, age
FROM student
LIMIT 3;

Đây là kết quả của truy vấn:

id first_name last_name tuổi
1 Steven Watson 25
2 Lisa Anderson 19
3 Alice Miller 19

Thảo luận:

Mệnh đề LIMIT giới hạn số hàng trong tập kết quả. Nó được sử dụng trong câu lệnh SELECT, thường ở cuối câu lệnh. (Ngay cả ORDER BY cũng phải được liệt kê trước LIMIT.)

Đối số bắt buộc duy nhất là số hàng sẽ hiển thị. Trong ví dụ của chúng tôi, LIMIT 3 đã tạo ra một tập hợp kết quả chứa ba hàng. Trừ khi bạn chỉ định khác với đối số OFFSET, hàm này sẽ luôn trả về n đầu tiên hàng đáp ứng yêu cầu truy vấn.

Đối số OFFSET tùy chọn của LIMIT được đặt trước đối số cho biết số hàng được trả về. Nó cho biết vị trí của hàng đầu tiên được trả về bởi LIMIT (tức là ‘0’ là hàng đầu tiên, 1 là hàng thứ hai, v.v.). Phần bù và số hàng được phân tách bằng dấu phẩy.

Truy vấn trả về các bản ghi giống như truy vấn trước đó vì độ lệch bằng không. (Số không là giá trị bù mặc định.)

SELECT first_name, last_name, age
FROM student
LIMIT 0, 3;

Trong các truy vấn này, các hàng kết quả không có thứ tự. Nếu bạn muốn chọn ba hàng từ tập hợp kết quả đã sắp xếp, hãy sử dụng ĐẶT HÀNG BẰNG CÁCH:

SELECT first_name, last_name, age
FROM student
ORDER BY age DESC, last_name, first_name
LIMIT 1,3;

Ở đây, trước tiên chúng tôi sắp xếp thứ tự các hàng theo tuổi (giảm dần), sau đó đến họ, rồi đến tên. Chúng tôi sử dụng giá trị offset để bắt đầu trên hàng trả về thứ hai và giới hạn kết quả ở ba hàng:

first_name last_name tuổi
Lucy Watson 25
Steven Watson 25
Michael Jackson 22

Truy vấn này trước tiên sắp xếp các hàng theo cột tuổi theo thứ tự giảm dần. Sau đó, nó sắp xếp theo last_namefirst_name theo thứ tự tăng dần. Nếu bạn nhìn vào bảng, bạn sẽ thấy rằng những học sinh lớn tuổi nhất (Steven, Lucy, Mary) 25 tuổi. Tuy nhiên, Mary bị bỏ qua vì cô ấy là hàng đầu tiên và phần bù là 1 (tức là chúng ta đang bắt đầu với hàng thứ hai). Lucy bây giờ là người đầu tiên vì tên đầu tiên của cô ấy có trước Steven’s. (Steven và Lucy có cùng họ, vì vậy thứ tự của họ được xác định theo tên.) Michael 22 tuổi, điều này khiến anh ấy trở thành học sinh lớn tuổi nhất và cuối cùng trong ba hàng được trả về.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tạo và sử dụng thủ tục lưu trữ trong MySQL - Hướng dẫn

  2. Sử dụng MySQL với các dịch vụ không đồng nhất của Oracle

  3. MySQL, cập nhật nhiều bảng với một truy vấn

  4. Chuyển đổi dự phòng cơ sở dữ liệu cho các trang web WordPress

  5. CURRENT_TIME Ví dụ - MySQL