Les Allergies
Alimentaires
Posez votre question Signaler

MySQL, Order by avec 2 champs [Résolu]

faith86 - Dernière réponse le 28 mars 2008 à 12:12
Bonjour,
Ayant déjà fait appel à plusieurs reprises sur commentcamarche, et ayant toujours eu une réponse adéquate, je me permet de poser à nouveau une question sur laquelle je bloque :
J'ai programmé un système de news en accord avec MySQL. La table 'news' contient entre autres les champs 'cree_le' et 'modifie_le'. Or, j'aimerais que ma page affiche la date de dernière modification de tout le système de news.
C'est à dire que MySQL doit rechercher la date la plus récente ( que ce soit le champ 'cree_le' ou 'modifie_le' ).
Est-ce possible en une seule requête ?
J'ai essayé quelque chose du genre " SELECT cree_le, modifie_le FROM news ORDER BY cree_le ASC, modifie_le ASC
mais ça ne marche pas ......
Une solution ?
Merci de votre réponse !
Cordialement,
Faith86
Lire la suite 

MySQL, Order by avec 2 champs »

Suggestions
3 réponses
Réponse
+0
moins plus
Je me suis trompé, j'ai mis 'DESC' au lieu de 'ASC' dans la requête
faith86 - 28 mars 2008 à 11:50
Cela me laisse bien évidemment le même problème :

SELECT cree_le, modifie_le FROM news ORDER BY cree_le DESC, modifie_le DESC

Je donne un exemple :

TABLE NEWS:
id | cree_le | modifie_le
1 | 21/02 12:50 | 21/02 12:54
2 | 20/02 12:50 | 22/02 13:12

Dans cet exemple, j'aimerais pouvoir récupérer la date modifie_le de l'enregistrement ayant pour id 2 ( puisque date la plus récente.. )
Mais pour cet exemple :

TABLE NEWS:
id | cree_le | modifie_le
1 | 21/02 12:50 | 21/02 12:54
2 | 22/02 12:50 | 0

Je voudrais qu'il me retourne cette fois la date cree_le de l'enregistrement ayant pour id 2 ( puisque date la plus récente )
faith86 - 28 mars 2008 à 12:12
Solution trouvée :

Lorsqu'une news est créée, je ne met plus le champ 'modifie_le' à 0, mais à la même valeur que 'cree_le',
Il ne me reste donc plus qu'à regarder quel est la date du champ 'modifie_le' la plus récente :

SELECT modifie_le FROM news ORDER BY modifie_le DESC LIMIT 1

Et j'obtiens pour l'exemple ci-dessus :
Exemple 1 :

TABLE NEWS:
id | cree_le | modifie_le
1 | 21/02 12:50 | 21/02 12:54
2 | 20/02 12:50 | 22/02 13:12

--> 22/02 13:12

Exemple 2:

TABLE NEWS:
id | cree_le | modifie_le
1 | 21/02 12:50 | 21/02 12:54
2 | 22/02 12:50 | 22/02 12:50

--> 22/02 12:50

Je n'ai pas trouvé mieux, et puis finalement, ça n'est pas si mal ! :)
Ajouter un commentaire
Ce document intitulé « MySQL, Order by avec 2 champs » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?