Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL – Функция FOUND_ROWS() за общия брой засегнати редове

В SQL Server, за да получите общия брой редове, засегнати от последния израз, можете да използвате системната променлива @@ROWCOUNT. По подобен начин в MySQL можете да го намерите с помощта на функцията FOUND_ROWS ().

Нека създадем този набор от данни

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();


Горното ще върне два резултата. Вторият резултат ще бъде 5 (без редове за израза SELECT).

Можете също да използвате SQL_CALC_FOUND_ROWS заедно с FOUND_ROWS (), за да получите общия брой редове в таблица. Когато се използва SQL_CALC_FOUND_ROWS, FOUND_ROWS() ще пропусне клаузата LIMIT.

SELECT * FROM TEST LIMIT 2;

Това ще върне само 2 реда.

SELECT SQL_CALC_FOUND_ROWS * FROM TEST LIMIT 2;
SELECT FOUND_ROWS();


Когато изпълните горното, той връща два набора резултати. Първият набор от резултати ще върне два реда. Вторият набор от резултати ще върне 5 (общ брой редове без клауза LIMIT).

Мисля, че това е наистина интересна функция и можем да я използваме в ежедневно приложение. Оставете коментар, ако използвате приложение, където трябва да знаете колко реда са били засегнати от предишния коментар.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. UnicodeEncodeError:Кодекът 'latin-1' не може да кодира символ

  2. Запитване от две таблици в отчета

  3. Как да съхранявате JSON данни в MySQL

  4. Полезни съвети за отстраняване на често срещани грешки в MySQL

  5. 2 начина за връщане на редове, които съдържат само не-буквени знаци в MySQL