Dùng UNION kết hợp 2 truy vấn LIMIT 1 (dòng đầu) và LIMIT offset,1 (dòng cuối).
Tạo bảng:
mysql> CREATE TABLE FirstAndLastDataDemo (
-> EmployeeId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> EmployeeName VARCHAR(20),
-> EmployeeAge INT
-> );
Chèn 9 dòng dữ liệu:
+------------+--------------+-------------+ | EmployeeId | EmployeeName | EmployeeAge | +------------+--------------+-------------+ | 1 | John | 23 | | 2 | Bob | 13 | | 3 | Larry | 24 | | 4 | Sam | 14 | | 5 | Mike | 31 | | 6 | James | 18 | | 7 | Maxwell | 28 | | 8 | David | 27 | | 9 | Chris | 22 | +------------+--------------+-------------+
Truy vấn lấy dòng 1 và dòng 9 (dòng cuối):
mysql> (SELECT * FROM FirstAndLastDataDemo LIMIT 1)
-> UNION
-> (SELECT * FROM FirstAndLastDataDemo LIMIT 8,1);
Kết quả:
+------------+--------------+-------------+ | EmployeeId | EmployeeName | EmployeeAge | +------------+--------------+-------------+ | 1 | John | 23 | | 9 | Chris | 22 | +------------+--------------+-------------+
Lưu ý: Offset của dòng cuối = tổng số dòng - 1. Có thể dùng subquery: LIMIT (SELECT COUNT(*)-1 FROM table), 1.