FOUND_ROWS
Синтаксис
FOUND_ROWS()
Описание
Оператор SELECT может содержать предложение LIMIT для ограничения количества строк, возвращаемых сервером клиенту. В некоторых случаях необходимо узнать, сколько строк вернул бы оператор без LIMIT, но без повторного его выполнения. Для получения этого количества строк включите опцию SQL_CALC_FOUND_ROWS в операторе SELECT и затем вызовите функцию FOUND_ROWS().
Также функцию FOUND_ROWS() можно использовать для получения количества строк, возвращённых оператором SELECT без предложения LIMIT. В этом случае вам не нужно использовать опцию SQL_CALC_FOUND_ROWS. Это может быть полезно, например, в хранимой процедуре.
Кроме того, эта функция работает с некоторыми другими операторами, возвращающими результат, включая SHOW, DESC и HELP. Для DELETE ... RETURNING следует использовать ROW_COUNT(). Она также работает как предварительно подготовленный запрос или после выполнения предварительно подготовленного запроса.
Операторы, которые не возвращают результатов, не влияют на FOUND_ROWS() — будет возвращено предыдущее значение.
Предупреждение: При использовании после оператора CALL эта функция возвращает количество строк, выбранных последним запросом в процедуре, а не всей процедурой.
Операторы, использующие функцию FOUND_ROWS(), не являются безопасными для репликации.
Примеры
SHOW ENGINES\G
*************************** 1. row ***************************
Engine: CSV
Support: YES
Comment: Stores tables as CSV files
Transactions: NO
XA: NO
Savepoints: NO
*************************** 2. row ***************************
Engine: MRG_MyISAM
Support: YES
Comment: Collection of identical MyISAM tables
Transactions: NO
XA: NO
Savepoints: NO
...
*************************** 8. row ***************************
Engine: PERFORMANCE_SCHEMA
Support: YES
Comment: Performance Schema
Transactions: NO
XA: NO
Savepoints: NO
8 rows in set (0.000 sec)
SELECT FOUND_ROWS();
+--------------+
| FOUND_ROWS() |
+--------------+
| 8 |
+--------------+
SELECT SQL_CALC_FOUND_ROWS * FROM tbl_name WHERE id > 100 LIMIT 10;
SELECT FOUND_ROWS();
+--------------+
| FOUND_ROWS() |
+--------------+
| 23 |
+--------------+
См. также
© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/found_rows/