Bạn cần kết thúc phép tính để lấy số hàng bên trong truy vấn con và giới hạn nó ở SELECT
bên ngoài câu lệnh để row_number không bị vỡ, ví dụ:
tên cột và tên bảng có thể khác với mẫu ví dụ của bạn ở trên nhưng suy nghĩ của truy vấn là giống nhau.
SELECT RowNumber, Student_ID, Student_Name
FROM
(
SELECT @rownum := @rownum + 1 RowNumber,
t.*
FROM student t, (SELECT @rownum := 0) s
ORDER BY t.Student_ID
) subQ
// LIMIT 0, 3