sql >> Databáze >  >> RDS >> Mysql

MySQL – funkce FOUND_ROWS() pro celkový počet ovlivněných řádků

Na serveru SQL Server můžete k získání celkového počtu řádků ovlivněných posledním příkazem použít systémovou proměnnou @@ROWCOUNT. Podobně v MySQL jej najdete pomocí funkce FOUND_ROWS ().

Nechte nás vytvořit tuto datovou sadu

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


Výše ​​uvedené vrátí dvě sady výsledků. Druhá sada výsledků bude 5 (počet řádků pro příkaz SELECT).

Můžete také použít SQL_CALC_FOUND_ROWS spolu s FOUND_ROWS () k získání celkového počtu řádků v tabulce. Při použití SQL_CALC_FOUND_ROWS FOUND_ROWS() vynechá klauzuli LIMIT.

SELECT * FROM TEST LIMIT 2;

Výše uvedené vrátí pouze 2 řádky.

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


Po provedení výše uvedeného vrátí dvě sady výsledků. První sada výsledků vrátí dva řádky. Druhá sada výsledků vrátí 5 (celkový počet řádků bez klauzule LIMIT).

Myslím, že je to opravdu zajímavá funkce a můžeme ji používat v každodenních aplikacích. Pokud používáte aplikaci, kde potřebujete vědět, kolik řádků bylo ovlivněno předchozím komentářem, zanechte komentář.


  1. PostgreSQL ekvivalent pro TOP n WITH TIES:LIMIT with ties?

  2. Jak funguje TRY_CONVERT() na serveru SQL Server

  3. Jak vytvořit index v Django bez výpadků

  4. Oracle pl-sql escape znak (pro ' )