Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да преброите всички записи, но да извлечете само (LIMIT) конкретен номер за показване?

MySQL има специална поддръжка за този вид неща. Първо, включете SQL_CALC_FOUND_ROWS във вашия SELECT:

SELECT SQL_CALC_FOUND_ROWS *
FROM Badges
WHERE UID = '$user'
ORDER by Date DESC
LIMIT 10 -- Or whatever

След това издърпайте своите редове и след това незабавно погледнете FOUND_ROWS() така:

SELECT FOUND_ROWS()

за да получите броя на редовете, които съответстват на оригиналната ви заявка, без да вземете предвид клаузата LIMIT.

Това е специфично за MySQL, но трябва да е малко по-бързо от извършването на две заявки.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL конфигурация за Fluent NHibernate

  2. Кой е най-добрият начин да правите инкрементални архиви в MySQL?

  3. Съхранение на конкретни стойности за дата/час за потребители в различни часови зони

  4. Как мога да внедря commit/rollback за MySQL в PHP?

  5. Как да изчислим процента?