ORDER BY - 2 critères

Eléphant du PHP | 65 Messages

07 juil. 2008, 19:30

Bonjour,

Voilà je possède une table et je veut l'afficher selon 2 critères

Par le timestamp en DESC et un champ appelé "postit" qui est en enum '0', '1'

Donc vous vous douter que ma requête doit d'abord afficher les postit en 1 puis ensuite les autres selon leur timestamp du plus récent au plus vieux.



Merci d'avance
La puissance n'est rien sans maitrise.

Mammouth du PHP | 693 Messages

07 juil. 2008, 19:36

normalement, la clause

Code : Tout sélectionner

ORDER BY (postit,timestap) DESC

devrait marcher.

Eléphant du PHP | 65 Messages

07 juil. 2008, 20:16

Nop marche pas cette clause! :/

malgré la petite correction du mot timestamp ;)
La puissance n'est rien sans maitrise.

Eléphant du PHP | 79 Messages

08 juil. 2008, 09:24

Il faut définir un à un les champs pour le tri. Ce qui donne par exemple dans ton cas

Code : Tout sélectionner

ORDER BY postit DESC, timestamp DESC

Tu peux également avoir

Code : Tout sélectionner

ORDER BY postit DESC, timestamp ASC

Sachant que le ASC est la valeur par défaut :)

Eléphant du PHP | 67 Messages

08 juil. 2008, 09:45

Au pire comme ton champ appelé "postit" ne prend que 0 ou 1 comme valeur tu pouvait contourner le probleme en fesant un GROUP BY sur ce champs puis un ORDER BY sur l'autre :wink: (si je ne m'abuse)

Eléphant du PHP | 65 Messages

08 juil. 2008, 11:15

Ok j'ai trouvé il fallait faire un group by sur les deux champs, merci! ;)
La puissance n'est rien sans maitrise.