Cú pháp
SELECT * FROM bang ORDER BY cot_sap_xep DESC LIMIT 1, 1;
ORDER BY ... DESC: Sắp xếp ngược (cuối lên đầu)
LIMIT 1, 1: Bỏ 1 dòng đầu (dòng cuối), lấy 1 dòng tiếp theo
- Cú pháp:
LIMIT offset, row_count
Ví dụ: Bảng 11 dòng, lấy dòng thứ 10 (Id=10)
Dữ liệu
+-----------+-------------+
| StudentId | StudentName |
+-----------+-------------+
| 1 | Larry |
| ... | ... |
| 10 | Chris | -- Dòng thứ 2 từ cuối
| 11 | Ramit | -- Dòng cuối
+-----------+-------------+
Truy vấn
mysql> SELECT * FROM secondLastDemo ORDER BY StudentId DESC LIMIT 1, 1;
Kết quả
+-----------+-------------+
| StudentId | StudentName |
+-----------+-------------+
| 10 | Chris |
+-----------+-------------+
Các biến thể
- Dòng cuối:
LIMIT 1 hoặc LIMIT 0, 1
- Dòng thứ 3 từ cuối:
LIMIT 2, 1
- N dòng cuối:
LIMIT N
- N dòng từ cuối (bỏ M dòng cuối):
LIMIT M, N
Lưu ý hiệu năng
- Cần index trên cột ORDER BY
- OFFSET lớn (LIMIT 1000000, 1) rất chậm → dùng keyset pagination
- Với bảng lớn:
WHERE id < (SELECT MAX(id) FROM bang) ORDER BY id DESC LIMIT 1