ORDER BY selon préférence [SQL] - SQL/NoSQL - Programmation
Marsh Posté le 24-02-2014 à 13:40:59
Code :
|
Éventuellement changer le 0 et 99999 en autre chose si ça pose problème dans les cas limite.
Testé avec ca comme données:
Code :
|
Et ca donne:
Code :
|
Marsh Posté le 25-02-2014 à 07:56:06
C'est pour "ignorer" les lignes qui ne doivent pas être triée par cette étape du order by.
99999 pour mettre ce qui n'est pas en flash sale en dessous des flash sale (en supposant que 99999 sera la plus grande date dans la table).
0 Pour mettre les flash sale au dessus (en supposant que 0 est plus petit que la plus petite date dans la table).
Tout le truc n'est nécessaire que parce que tu veux trier les flash sale en ordre descendant et les vielles flash sale en ordre ascendant (ce qui est logique d'un point de vue marketing).
Sans ça tu aurais pu t'en sortir plus facilement avec juste un Order By Expiration Desc, ID.
Marsh Posté le 23-02-2014 à 14:06:42
Bonjour,
Je voudrais afficher tout un catalogue de livres dont certains produits en vente flash dans l'ordre suivant :
-------- heure croissante jusqu'a minuit-------------------------------------------------
1) Babar (vente flash ! expire aujourd'hui a 17h)
2) Le roi lion (vente flash ! expire aujourd'hui a 18h)
3) La petite sirène (vente flash ! expire aujourd'hui a 23h)
-------- heure décroissante le dernier a avoir eu une vente flash est en priorité -----------
4) Aladin (pas une vente flash mais ca l'a été hier a 16h)
5) La belle et la bête (pas une vente flash mais ca l'a été hier a 15h)
-------- les autres livres s'affichent aussi selon leur ID décroissant ------------------------
6) Les aristochats (jamais été une vente flash)
7) Boule et Bill (jamais été une vente flash)
etc...
J'ai une table "livre" avec un champ "expiration" en DATETIME.
Par exemple si je veux que Babar soit en vente flash je mets a jour le datetime dans expiration. Et étant donné mon ORDER BY cela s'affichera tout de suite en tête des résultats.
Quelqu'un aurait une idée pour construire cette requête SQL ?
Merci
Message édité par tomware le 23-02-2014 à 14:14:07