2010-08-05 33 views
10

câu hỏi nhanh về SQLite3 (cũng có thể là SQLite chung)SQLite3 (hoặc SQL chung) truy xuất hàng thứ n của kết quả truy vấn

Làm cách nào để truy xuất hàng thứ n của kết quả truy vấn?

row_id (hoặc bất kỳ chỉ mục nào) sẽ không hoạt động đối với trường hợp của tôi, với điều kiện các bảng có chứa cột có số. Dựa trên một số dữ liệu, truy vấn cần dữ liệu chưa được phân loại hoặc sắp xếp theo tiêu chí asc/desc.

Nhưng tôi có thể cần phải nhanh chóng truy xuất, nói, các hàng 2 & 5 trong số các kết quả.

Vì vậy, ngoài việc thực hiện sqlite3_step() == SQLITE_ROW với bộ đếm ngay bây giờ tôi không có ý tưởng về cách tiếp tục với điều này.

Và tôi không thích giải pháp này quá nhiều do vấn đề về hiệu suất. vì vậy nếu bất cứ ai có thể thả một gợi ý đó sẽ được đánh giá cao.

Trân david

+0

nhiều: http://stackoverflow.com/questions/3492703/sql-how-to-select-1st-3rd-11th-and-nth-row-from-a-table –

Trả lời

19

thêm LIMIT 1OFFSET <n> với truy vấn
dụ SELECT * FROM users LIMIT 1 OFFSET 5132;

+0

âm thanh tuyệt vời nhưng tôi không biết nếu điều này hoạt động trên sqlite3, sẽ thử nó ra khó khăn –

+1

Nên làm việc trong sqlite3 – wlk

+1

hoạt động đẹp trong sqlite3 Wotjek, THANKS! –

0

Cách tiếp cận chung là, nếu bạn muốn chỉ dòng thứ n của dãy m, sử dụng một điều kiện thích hợp where chỉ nhận được rằng hàng.

Nếu bạn cần liên hệ và không thể vì không có tiêu chí where nào có thể đưa bạn đến đó, cơ sở dữ liệu của bạn có vấn đề thiết kế nghiêm trọng. Nó không thành công first normal form, tuyên bố rằng "Không có thứ tự từ trên xuống dưới đến các hàng".

+0

nhưng tôi sẽ không có tiêu chí WHERE? row_id's sẽ không hoạt động ở đây –

+1

Sau đó, làm thế nào để bạn biết bạn cần hàng thứ n, và không phải là những người khác? – MPelletier

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