sql >> Databasteknik >  >> RDS >> Mysql

MySQL – FOUND_ROWS() Funktion för totalt antal rader som påverkas

I SQL Server för att få det totala antalet rader som påverkas av den sista satsen kan du använda systemvariabeln @@ROWCOUNT. På liknande sätt kan du hitta den i MySQL med funktionen FOUND_ROWS ().

Låt oss skapa denna datauppsättning

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


Ovanstående kommer att returnera två resultatuppsättningar. Den andra resultatuppsättningen blir 5 (antal rader för SELECT-satsen).

Du kan också använda SQL_CALC_FOUND_ROWS tillsammans med FOUND_ROWS () för att få det totala antalet rader i en tabell. När SQL_CALC_FOUND_ROWS används kommer FOUND_ROWS() att utelämna LIMIT-satsen.

SELECT * FROM TEST LIMIT 2;

Ovanstående returnerar endast 2 rader.

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


När du kör ovanstående returnerar det två resultatuppsättningar. Den första resultatuppsättningen kommer att returnera två rader. Den andra resultatuppsättningen kommer att returnera 5 (totalt antal rader utan LIMIT-sats).

Jag tycker att det här är en riktigt intressant funktion och vi kan använda den i dagligt bruk. Lämna en kommentar om du använder ett program där du behöver veta hur många rader som påverkades av den tidigare kommentaren.


  1. MONTHS_BETWEEN() Funktion i Oracle

  2. Så här använder du guiden Crosstab Query i Access

  3. Navigat för MySQL

  4. Vad är standardbegränsningsnamnet i Oracle?