Spec-Zone.ru › MariaDB

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 |
+--------------+

См. также

  • ROW_COUNT()
Содержимое, воспроизведённое на этом сайте, является собственностью соответствующих владельцев, и это содержимое не проверяется предварительно компанией MariaDB. Мнения, информация и мнения, выраженные в этом содержимом, не обязательно отражают мнения MariaDB или любой другой стороны.

© 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/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API