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.