Có sự khác biệt nào giữa 'GIỚI HẠN 0, 1' và 'GIỚI HẠN 1' không?


15

Gần đây tôi đã tình cờ tìm thấy các mã ví dụ, khác biệt bởi các ký hiệu này.

SELECT * FROM table LIMIT 0, 1
SELECT * FROM table LIMIT 1

Đối số đầu tiên phải được coi là phần bù nếu tôi không sai, mục đích của hai truy vấn đó là giới hạn lựa chọn ở hàng đầu tiên của table

Có bất kỳ tác động tiêu cực nào khi bỏ đi phần bù / làm thế nào có thể bỏ nó ở vị trí đầu tiên? Hay tôi đã hiểu nhầm các truy vấn?


3
Không, bạn đã hiểu đúng, chúng là tương đương. Đây cũng là : LIMIT 1 OFFSET 0. Nhưng bạn thực sự nên bao gồm ORDER BYtrong bất kỳ truy vấn nào có LIMIT, trừ khi có một lý do cụ thể không.
ypercubeᵀᴹ

Câu trả lời:


13

Như tài liệu nói:

Các  LIMIT điều khoản có thể được sử dụng để hạn chế số lượng hàng được trả về bởi các  SELECT tuyên bố. LIMIT lấy một hoặc hai đối số số, cả hai phải là hằng số nguyên không âm (trừ khi sử dụng các câu lệnh đã chuẩn bị).

Với hai đối số, đối số thứ nhất chỉ định phần bù của hàng đầu tiên sẽ trả về và đối số thứ hai chỉ định số lượng hàng tối đa sẽ trả về. The offset of the initial row is 0 (not 1).

Các LIMITkhoản được sử dụng trong các SELECTtuyên bố để hạn chế số lượng hàng trong một tập kết quả. Các LIMITđiều khoản chấp nhận một hoặc hai đối số. Các giá trị của cả hai đối số phải là 0 hoặc hằng số nguyên dương.

Sau đây minh họa LIMITcú pháp mệnh đề với 2 đối số:

SELECT * FROM tbl
LIMIT offset, count;

Hãy xem phần bù và số đếm có nghĩa gì trong mệnh đề LIMIT:

  • Chỉ offsetđịnh phần bù của hàng đầu tiên trả về. Độ lệch của hàng đầu tiên là 0, không phải 1.
  • Việc countchỉ định số lượng hàng tối đa để trả về.

Khi bạn sử dụng LIMITvới một đối số, đối số này sẽ được sử dụng để chỉ định số lượng hàng tối đa trả về từ đầu tập kết quả.

SELECT * FROM tbl LIMIT count;

Truy vấn trên tương đương với truy vấn sau với LIMITmệnh đề chấp nhận hai đối số:

SELECT * FROM tbl LIMIT 0, count;

Các LIMITđiều khoản thường được sử dụng với ORDER BYkhoản. Đầu tiên, bạn sử dụng ORDER BYmệnh đề để sắp xếp tập kết quả dựa trên một tiêu chí nhất định và sau đó bạn sử dụng LIMITmệnh đề để tìm giá trị thấp nhất hoặc cao nhất.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.