ORDER BY SPECIFIQUE

arnaudmuse Messages postés 1 Date d'inscription dimanche 17 octobre 2004 Statut Membre Dernière intervention 16 février 2010 - 16 févr. 2010 à 12:01
Celfyk Messages postés 5 Date d'inscription mercredi 7 septembre 2011 Statut Membre Dernière intervention 7 septembre 2011 - 7 sept. 2011 à 15:58
Bonjour je suis a la recherche d'un code pour pouvoir faire un order by specifique, je m'explique.

Disons que je récupère par le biais d'une requette une liste d'utilisateur oû figure un champ cp (code postal des département 59 62 80 et + a avenir )

Je chercher a pouvoir faire sur cette requette un order by mais assez specifique en mettant dabord les cp des 62 puis 59 puis le reste sauf que le champ que je recupere correspond au cp complet exmeple 59123 62864 etc...

Si je fait order by cp desc je ne vais pas avoir en premier ceux du 62.

Serai t-il possible de lister grace à order by dans le style : ORDER BY cp ('62%','59%')

Merci d'avance

2 réponses

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Modérateur Dernière intervention 15 juillet 2011 37
16 févr. 2010 à 15:03
Salut,

Tu rajoutes dans la base une colonne pour faire le tri

That's all:-)
0
Celfyk Messages postés 5 Date d'inscription mercredi 7 septembre 2011 Statut Membre Dernière intervention 7 septembre 2011
7 sept. 2011 à 15:58
Bonjour,

au risque d'arriver trop tard, je prend le temps de répondre quand même.

utilise un CASE dans ton ORDER BY

exemple :

SELECT *
FROM util
ORDER BY CASE WHEN util.cp LIKE '62%' THEN 1 WHEN util.cp LIKE '59%' THEN 2 ELSE 99 END;

Les valeurs 1,2 et 99 indiquent l'ordre du tri.
On retrouve donc avec les utilisateurs du 62, puis du 59, puis tous les autres.

Voilà.
Bonne continuation.
0