Base de données / MySQL – Classer dans l’ordre des calculs (ORDER)

Parce qu’on m’a posé plusieurs fois la question, je vais donc poster la réponse ici.

Comment calculer des données dans une base de données avec une requête SQL et afficher dans un certain ordre (ORDER) les résultats ?

En fait, c’est assez simple, il peut arriver que vous ayez à calculer plusieurs champs d’une base de données entre eux et qu’il vous faut ensuite trier les résultats dans un certains ordre depuis votre requête SQL.

Mieux que du blabla, voici un exemple concret :

Select *,  (champs1 + champs2) as order1, (champs1-champs3) as order2, (champs1+champs3-champs2) as order3
From table1, table2
Where table1.id = table2.fk
ORDER BY order1, order2, order3 ASC

Vous avez pigé la logique ?

C’est très simple en effet, il suffit de faire vos calculs en amont, dans la partie “select” et non comme beaucoup se lancent, dans la partie “order by” directement.

Il faut ensuite renommer les résultats, dans notre cas “order1“, “order2” et “order3” et les réutiliser dans la zone “ORDER BY“. Et le tour est joué !

Voilà, c’est aussi simple que cela, maintenant vous savez trier un résultat qui directement calculé dans votre requête SQL.

Bon code à tous !

Author: Franck Pertegas

Share This Post On

Submit a Comment

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *