Combiner un select classique et un count() [MySQL] - SQL/NoSQL - Programmation
Marsh Posté le 04-12-2017 à 13:42:15
Code :
|
?
Mais quel langage ?
Parce que via l'API tu peux récupérer le nombre de lignes renvoyées par la requête (exemple en PHP : mysqli_num_rows, PDOStatement::rowCount - officieusement, etc)
(bien que les deux ne soient pas équivalents : COUNT(colonne1) ne compte pas les lignes où colonne1 IS NULL)
Marsh Posté le 04-12-2017 à 14:56:39
pluj a écrit :
|
J'ai pas precisé en PHP, mais j'avais utilisé le "mysqli_num_rows" mais vu que je fais un LIMIT dans ma query ça ne me donne pas le resultat escompté, et ça m'oblige a faire une 2nd requete pour avoir le nombre de ligne total.
Marsh Posté le 04-12-2017 à 15:27:18
Quand on a toutes les données, ça change tout : dans ce cas tu peux utiliser la fonctionnalité SQL_CALC_FOUND_ROWS et la fonction FOUND_ROWS().
Tu fais toujours 2 "requêtes" mais la seconde n'est qu'un appel de la fonction FOUND_ROWS pour lequel MySQL t'auras gardé le résultat du SQL_CALC_FOUND_ROWS (une espèce de COUNT interne ignorant la clause LIMIT) au chaud.
Pour résumer :
Pour les détails, voir la doc de MySQL.
(si tu n'arrives pas à l'intégrer, repasses avec ton code )
Marsh Posté le 05-12-2017 à 17:45:06
pluj a écrit : Quand on a toutes les données, ça change tout : dans ce cas tu peux utiliser la fonctionnalité SQL_CALC_FOUND_ROWS et la fonction FOUND_ROWS().
|
Merci, ça devrait le faire
edit: ça à marché impec
Marsh Posté le 04-12-2017 à 07:37:16
Bonjour,
Quelqu'un saurait s'il est possible de combiner un SELECT classique et un count() dans la même requete ?
Par exemple
SELECT count(colonne1), colonne1 FROM table ...
ce qui nous donnerait la liste des rows de la colonne1 ainsi que le nombre de lignes retournées.
Merci.
---------------
"Première fois de ma vie que je te vois mais tu m'as l'air d'un sacré tocard !"