sql >> Databasteknik >  >> RDS >> Mysql

Få resultat från räknefrågor genom att ignorera LIMIT-satsen

MySQL stöder en FOUND_ROWS() funktion för att hitta det obegränsade antalet rader som skulle ha returnerats från den tidigare begränsade frågan.

SELECT SQL_CALC_FOUND_ROWS * FROM blah WHERE disabled = '0'  LIMIT 10,20
SELECT FOUND_ROWS();

Observera att (a) du måste inkludera SQL_CALC_FOUND_ROWS alternativ, och (b) att detta är ett specifikt MySQL-tillägg som inte fungerar på ett annat RDBMS (även om de var och en kan har sitt eget sätt att göra detta.)

Det här är inte nödvändigtvis det bästa sättet att göra saker på, även om det kanske känns så; du måste fortfarande utfärda två satser, du introducerar icke-standard SQL och den faktiska COUNT ning är sannolikt en liknande hastighet som en enkel SELECT COUNT(*)... i alla fall. Jag skulle själv vara benägen att hålla fast vid standardsättet att göra det på.



  1. Ladda data från MySQL-databasen till HTML-textrutor när du klickar på knappen

  2. Fråga exekveras två gånger (av misstag) i Java med oönskade värden

  3. Använda libpqxx för att lagra data i bulk ELLER hur man använder COPY-satsen i libpqxx

  4. Om klustrade index i postgres