Trong SQL Server để nhận tổng số hàng bị ảnh hưởng bởi câu lệnh cuối cùng, bạn có thể sử dụng biến hệ thống @@ ROWCOUNT. Tương tự, trong MySQL, bạn có thể tìm thấy nó bằng cách sử dụng hàm FOUND_ROWS ().
Hãy để chúng tôi tạo tập dữ liệu này
CREATE TABLE TEST(ID INT, NAME VARCHAR(30)); INSERT INTO TEST(ID,NAME) SELECT 1,'NAME1' UNION ALL SELECT 2,'NAME2' UNION ALL SELECT 3,'NAME3' UNION ALL SELECT 4,'NAME4' UNION ALL SELECT 5,'NAME5'; SELECT * FROM TEST; SELECT FOUND_ROWS();
Ở trên sẽ trả về hai tập kết quả. Tập kết quả thứ hai sẽ là 5 (không có hàng nào cho câu lệnh SELECT).
Bạn cũng có thể sử dụng SQL_CALC_FOUND_ROWS cùng với FOUND_ROWS () để nhận tổng số hàng trong bảng. Khi SQL_CALC_FOUND_ROWS được sử dụng, FOUND_ROWS () sẽ bỏ qua mệnh đề LIMIT.
SELECT * FROM TEST LIMIT 2;
Ở trên sẽ chỉ trả về 2 hàng.
SELECT SQL_CALC_FOUND_ROWS * FROM TEST LIMIT 2; SELECT FOUND_ROWS();
Khi bạn thực hiện lệnh trên, nó trả về hai tập kết quả. Tập kết quả đầu tiên sẽ trả về hai hàng. Tập kết quả thứ hai sẽ trả về 5 (tổng số hàng không có mệnh đề LIMIT).
Tôi nghĩ đây là chức năng thực sự thú vị và chúng ta có thể sử dụng nó trong ứng dụng hàng ngày. Hãy để lại nhận xét nếu bạn đang sử dụng một ứng dụng mà bạn cần biết có bao nhiêu hàng bị ảnh hưởng với nhận xét trước đó.