Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Hàm MySQL - FOUND_ROWS () cho Tổng số hàng bị ảnh hưởng

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 đó.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chèn vào MySQL từ PHP (jQuery / AJAX)

  2. MySQL ISNULL () Giải thích

  3. Sự khác biệt giữa utf8_general_ci và utf8_unicode_ci là gì?

  4. 12 Phương pháp Tốt nhất về Bảo mật MySQL / MariaDB cho Linux

  5. Chuyển đổi DateTime cho MySQL bằng C #