Postgresql : compte du nombre de resultat si pas de LIMIT (how to?) - SQL/NoSQL - Programmation
Marsh Posté le 20-03-2005 à 18:33:57
Quelle version de mySql ?
"SQL_CALC_FOUND_ROWS (available in MySQL 4.0.0 and up) tells MySQL to calculate how many rows there would be in the result set, disregarding any LIMIT clause. The number of rows can then be retrieved with SELECT FOUND_ROWS(). See Section 12.8.3, Information Functions.
Before MySQL 4.1.0, this option does not work with LIMIT 0, which is optimized to return instantly (resulting in a row count of 0). See Section 7.2.12, How MySQL Optimizes LIMIT."
http://dev.mysql.com/doc/mysql/en/select.html
Marsh Posté le 20-03-2005 à 18:35:40
- Tu met un champ nb_clients quelque part.
- Tu fais un count avant...
- ...
Marsh Posté le 20-03-2005 à 18:36:40
WhatDe a écrit : - Tu met un champ nb_clients quelque part. |
S'il pose la question, c'est qu'à mon avis il fait une requête avec pas mal de filtres, et pas simplement un "SELECT * FROM clients;".
Marsh Posté le 20-03-2005 à 18:38:28
Oops j'ai oublié de preciser, je travaille avec Postgresql 8.0
mais a mon avis si ya ca dans mysql y aura dans postgres, je vais aller chercher de ce coté la merci Beegee!
Marsh Posté le 20-03-2005 à 18:40:15
Beegee a écrit : S'il pose la question, c'est qu'à mon avis il fait une requête avec pas mal de filtres, et pas simplement un "SELECT * FROM clients;". |
Vi c'est une grosse requete sinon j'aurais pas posé la question
Marsh Posté le 20-03-2005 à 19:46:55
Bon ben j'trouve pas trop de solution
J'vais changer le titre au cas ou...
Marsh Posté le 20-03-2005 à 18:27:50
Bonjour,
en fait j'affiche sur une page une liste de clients a partir d'une base de données. Il est évident que si on a 1000 clients on va pas tous les afficher sur la meme page, et donc je dois creer des pages. Jusque la pas de problème.
Le fait est que si je fait un LIMIT, dans la requete SQL a partir du resultat de cette requete je ne peux plus savoir combien de clients il y aura au total et donc je ne peux plus calculer le nombre de page qu'il y aura c'est logique . Mais le probleme dans l'histoire c'est que pour afficher ces client et d'autres infos sur eux, je vais puiser dans une grosse vue sur d'inombrables tables avec pleins de jointures donc j'ai pas trop envie d'interroger 2 fois la vue une fois avec limit pour afficher et une fois sans pour compter le nombre total.
J'ai bien pensé limiter l'affichage des client uniquement via php, et donc sans LIMIT dans la requete, mais prenons l'exemple qu'il y a 50000 client dans la base de données, ca va être super lourd et gourmand niveau ressource (mémoire ram surtout).
Donc ma question est, avez vous une solution facile a ce probleme?
Ya pas moyen a partir du resultat del a requete de connaitre combien de client y aurait si il n'y avait pas eu de LIMIT ?
Une idée ?
Merci
Message édité par Gat$ le 20-03-2005 à 19:47:41