Tri avec condition - ORDER BY

Par Tydoo, il y a 7 ans


Base de données MySQL

Bonjour,

Voila je rencontre un petit problème avec mon code.

Ce que je recherche à faire

Je souhaite trier un résultat avec plusieurs critéres et des conditions

J'ai une table sql comme ceci :

uc1 nbr_ddc_uniques_tlrv last_tr69 1115800000268 84 2019-04-12 2115800000269 243 2019-04-31 3115800000270 0 2019-04-19 4115800000271 63 2019-04-05

Et je souhaite la faire resortir comme ceci :

uc1 nbr_ddc_uniques_tlrv last_tr69 2115800000269 243 2019-04-31 4115800000271 63 2019-04-05 1115800000268 84 2019-04-12 3115800000270 0 2019-04-19

Pour ce faire, j'aimerais trier en faisant cette condition :

Tant que nbr_ddc_uniques_tlrv >= 100, Trier nbr_ddc_uniques_tlrv du plus grand au plus petit, puis dés que nbr_ddc_uniques_tlrv < 100, trier par last_tr69 du plus petit au plus grand.

Ce qui représente, si je la faisait en php :

if(`nbr_ddc_uniques_tlrv` >= 100) { `nbr_ddc_uniques_tlrv` DESC } else { ``last_tr69`` ASC }

J'ai cherché et trouvé des possiblités avec CASE ou IF. Mais je n'arrive pas à les faire fonctionné.

Avez vous des idées ?

Merci

1 réponse

Tydoo, il y a 7 ans

Du coup j'ai trouvé avec une collégue :

ORDER BY case when nbr_ddc_uniques_tlrv >=100 then nbr_ddc_uniques_tlrv end desc, case when nbr_ddc_uniques_tlrv < 100 then last_tr69 end asc

;)