sql >> Databáze >  >> RDS >> Mysql

Získejte výsledky dotazu na počet s ignorováním příkazu LIMIT

MySQL podporuje FOUND_ROWS() funkce najít neomezený počet řádků, které by byly vráceny z předchozího omezeného dotazu.

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

Všimněte si, že (a) musíte zahrnout SQL_CALC_FOUND_ROWS a (b) že se jedná o konkrétní rozšíření MySQL, které nebude fungovat na jiném RDBMS (ačkoli může mají svůj vlastní způsob, jak to udělat.)

To není nutně nejlepší způsob, jak věci dělat, i když to tak může vypadat; stále musíte vydat dva příkazy, zavádíte nestandardní SQL a skutečný COUNT ing bude mít pravděpodobně podobnou rychlost jako jednoduchý SELECT COUNT(*)... tak jako tak. Sám bych se přikláněl k tomu, abych se držel standardního způsobu.



  1. Vyberte druhou nejnižší minimální hodnotu v Oracle

  2. který dotaz je lepší a efektivnější - mysql

  3. Proč v TSQL používat nenulový primární klíč?

  4. Jak otestovat uloženou proceduru Oracle s návratovým typem RefCursor?