Skip to main content

FOUND_ROWS

Returns the number of rows when using commands that return a resultset, such as SELECT, DESC, and SHOW.

Syntax

FOUND_ROWS()

Arguments

  • None

Return Type

int

Examples

SHOW TABLES;

Results:

+--------------+
| Tables_in_db |
+--------------+
| testdata     |
+--------------+
SELECT FOUND_ROWS();

Results:

+--------------+
| FOUND_ROWS() |
+--------------+
|            1 |
+--------------+
SELECT ID FROM testdata LIMIT 2;

Results:

+------+
| id   |
+------+
|    2 |
|    4 |
+------+
SELECT FOUND_ROWS();

Results:

+--------------+
| FOUND_ROWS() |
+--------------+
|            2 |
+--------------+
SELECT * FROM testdata;

Results:

+----------+
| Results  |
+----------+
|        1 |
|        2 |
|        3 |
|        4 |
|        5 |
+----------+    
SELECT FOUND_ROWS;

Results:

+--------------+
| FOUND_ROWS() |
+--------------+
|            5 |
+--------------+
DESC testdata;

Results:

+-------+---------+------+------+---------+-----------+
| Field  | Type       | Null | Key  | Default | Extra |
+-------+-------------+------+------+---------+-------+
| id     | int(10)    | NO   |      | NULL    |       |
+--------+------------+------+------+---------+-------+
| name   | varchar(64)| NO   |      | NULL    |       |
+--------+------------+------+------+---------+-------+        
| amount | int(10)    | NO   |      | NULL    |       |
+-------+---------+------+------+---------+-----------+
SELECT FOUND_ROWS;

Results:

+--------------+
| FOUND_ROWS() |
+--------------+
|            1 |
+--------------+

Notice

Please note, there can be an incorrect result given when running a query using LIMIT with an offset. See the following example:

CREATE TABLE t1(a BIGINT PRIMARY KEY AUTO_INCREMENT, b INT);

INSERT random integers into t1 so total row count is greater than LIMIT argument.

SELECT COUNT(*) FROM t1 GROUP BY a ORDER BY a LIMIT 5,10;
+----------+
| COUNT(*) |
+----------+
|        1 |
|        1 |
|        1 |
|        1 |
|        1 |
|        1 |
|        1 |
|        1 |
|        1 |
|        1 |
+----------+
10 rows in set (0.03 sec)
 
SELECT FOUND_ROWS(); -- the result should be 10
+--------------+
| FOUND_ROWS() |
+--------------+
|           15 |
+--------------+
1 row in set (0.00 sec)