sql >> Database teknologi >  >> RDS >> Mysql

MySQL – FOUND_ROWS() Funktion for det samlede antal berørte rækker

I SQL Server for at få det samlede antal rækker påvirket af den sidste sætning, kan du bruge systemvariablen @@ROWCOUNT. På samme måde kan du finde det i MySQL ved hjælp af funktionen FOUND_ROWS ().

Lad os oprette dette datasæt

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


Ovenstående vil returnere to resultatsæt. Det andet resultatsæt vil være 5 (antal rækker for SELECT-sætningen).

Du kan også bruge SQL_CALC_FOUND_ROWS sammen med FOUND_ROWS () for at få det samlede antal rækker i en tabel. Når SQL_CALC_FOUND_ROWS bruges, vil FOUND_ROWS() udelade LIMIT-sætningen.

SELECT * FROM TEST LIMIT 2;

Ovenstående returnerer kun 2 rækker.

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


Når du udfører ovenstående, returnerer det to resultatsæt. Det første resultatsæt vil returnere to rækker. Det andet resultatsæt vil returnere 5 (samlet antal rækker uden LIMIT-sætning).

Jeg synes, det er en virkelig interessant funktion, og vi kan bruge den i daglig anvendelse. Efterlad en kommentar, hvis du bruger et program, hvor du har brug for at vide, hvor mange rækker der blev påvirket af den forrige kommentar.


  1. Tilslutning af Delphi på Linux til SQL Server

  2. Find længden af ​​den længste række i en kolonne i orakel

  3. Hvordan gemmer man unicode i MySQL?

  4. Hvad er PL/SQL-lagrede procedurer i Oracle-databasen