sql >> Database >  >> RDS >> Mysql

Krijg telqueryresultaten door de LIMIT-instructie te negeren

MySQL ondersteunt een FOUND_ROWS() functie om het onbeperkte aantal rijen te vinden dat zou zijn geretourneerd uit de vorige beperkte zoekopdracht.

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

Merk op dat (a) u de SQL_CALC_FOUND_ROWS moet opnemen optie, en (b) dat dit een specifieke MySQL-extensie is die niet werkt op een ander RDBMS (hoewel ze elk mogelijk hebben hun eigen manier om dit te doen.)

Dit is niet per se de beste manier om dingen te doen, ook al voelt het misschien zo; je moet nog steeds twee instructies geven, je introduceert niet-standaard SQL en de eigenlijke COUNT ing heeft waarschijnlijk een vergelijkbare snelheid als een eenvoudige SELECT COUNT(*)... hoe dan ook. Ik zou zelf geneigd zijn om vast te houden aan de standaardmanier om het te doen.



  1. Meerdere tafelverbindingen in rails

  2. Verwijzen naar dezelfde tabel als doel van UPDATE en gegevensbron in MySql

  3. PHP - CSV-bestand importeren in mysql-database met behulp van LOAD DATA INFILE

  4. Mysql:Selecteer alle gegevens tussen twee datums