#1 2011-12-24 11:48:17

mistic100
Ex Equipe Piwigo
Lyon
2008-09-27
3561

MySQL - Récupérer les enregistrements recents

Salut,
j'ai un petit soucis avec MySQL, ma table (c'est le cache des statistiques pour mon outil de traduction) :
|-- section --|-- language --|-- date --|-- value --|

ce que je voudrais c'est récupérer uniquement les enregistrements recents, sans possibilité de connaitre le nombre d'enregistrement (ORDER BY date LIMIT x ne peut pas convenir)

pour le moment j'ai ceci

Code:

SELECT * FROM (
  SELECT *
    FROM '.STATS_TABLE.'
    ORDER BY date DESC
  ) as t
  GROUP BY CONCAT(t.section, t.language);

qui fonctionne mais je sais pas trop ce que ça donne question performances vu qu'il y a une sous requete qui renvoie tous les résultats...

Hors ligne

 

#2 2011-12-24 13:56:27

plg
Équipe Piwigo
Nantes, France, Europe
2002-04-05
12671

Re: MySQL - Récupérer les enregistrements recents

Je ne vois pas cette table dans la base, mais je dirais que ceci devrait marcher aussi bien :

Code:

SELECT *
  FROM '.STATS_TABLE.'
  GROUP BY section, language
  ORDER BY date DESC
;

Mais ça me semble tellement simple comme réponse que je pense ne pas saisir la difficulté.

De plus, le besoin d'optimisation ne doit se faire que si c'est nécessaire. Si la table "stats" fait 1k lignes, ce n'est pas la peine de se prendre la tête, même une requête mal optimisée ne posera aucun soucis.


Les historiens ont établi que Pierrick était le premier utilisateur connu de Piwigo.

Hors ligne

 

#3 2011-12-24 14:37:48

mistic100
Ex Equipe Piwigo
Lyon
2008-09-27
3561

Re: MySQL - Récupérer les enregistrements recents

il faut que j'essaye mais ce que dont j'ai peur c'est que comme on fait le GROUP BY avant le ORDER BY on obtienne pas forcement les entrées récentes

Hors ligne

 

#4 2011-12-24 15:04:22

plg
Équipe Piwigo
Nantes, France, Europe
2002-04-05
12671

Re: MySQL - Récupérer les enregistrements recents

mistic100 a écrit:

il faut que j'essaye mais ce que dont j'ai peur c'est que comme on fait le GROUP BY avant le ORDER BY on obtienne pas forcement les entrées récentes

Ah ben oui, tu as tout à fait raison. MySQL va te laisser faire cette requête mais va te prendre une date au hasard.

En revanche, si tu fais un :

Code:

SELECT section, language, max(date) as max_date
  FROM table
  GROUP BY section, language
  ORDER BY max_date DESC
;

là c'est mieux sans doute.


Les historiens ont établi que Pierrick était le premier utilisateur connu de Piwigo.

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB

github twitter newsletter Faire un don Piwigo.org © 2002-2024 · Contact