Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment obtenir le nombre total de lignes trouvées sans tenir compte de la limite dans PDO ?

MySQL uniquement AFAIK :

$r=$db->prepare("SELECT SQL_CALC_FOUND_ROWS * FROM locations WHERE area=:area LIMIT $start,10");
$r->execute($fields);

var_dump($r->fetchAll());

var_dump($db->query('SELECT FOUND_ROWS();')->fetch(PDO::FETCH_COLUMN));

À peu près aussi lourd pour le serveur de base de données que d'interroger une seule fois tous les enregistrements bien sûr. Pour une utilisation non-MySQL, cette requête est bien sûr meilleure que d'obtenir le nombre de lignes de tous les enregistrements :

$r=$db->prepare("SELECT COUNT(*) FROM locations WHERE area=:area");
$r->execute($fields);
$count = $r->fetch(PDO::FETCH_COLUMN);
echo $count;