2010-12-05 43 views
1

Est-il possible de modifier la requête ci-dessous:Besoin d'aide avec MySQL requête

SELECT * 
FROM t1  
ORDER BY CASE 
    WHEN projects_status = 'active' THEN 1 
    WHEN projects_status = 'expired' THEN 2 
    WHEN projects_status = 'closed' THEN 3 
    END 

pour avoir des résultats dans l'ordre de tri suivant:

  • projects_status actif ASC
  • Périmé projects_status DESC
  • Closed projects_status DESC
+1

Pouvez-vous donner un exemple du résultat attendu? –

Répondre

1

Une comparaison renverra un 0 ou un 1, où un 0 est normalement trié avant un 1. Donc, quand vous dites ASC, vous voulez probablement qu'il renvoie les lignes où ceci est vrai (1) en haut. Vous devez donc utiliser DESC dans ce cas.

ORDER BY 
projects_status = 'active' DESC, 
projects_status = 'expired' ASC, 
projects_status = 'closed' ASC 
+0

Il ne semblait pas faire ce dont j'avais besoin ... – santa