mysql order by personnalisée sur une colonne

Nous allons prendre un exemple concret, vous avez une table avec plusieurs colonnes et vous voulez trier sur une des colonnes mais pas par ordre alphabétique ou numérique mais par les valeurs de votre fameuse colonne, voici comment réaliser la chose :

Exemple d'une colonne avec les mois de l'année

Vous voulez trier par mois dans leur ordre d'apparition dans l'année voici comment faire :

SELECT year, monthname0, city_FR FROM `ma_table` where city_FR = '" .$whatCity ."' AND year0 = '" .$whatYear ."' order by FIELD(monthname0, 'Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'août','Septembre', 'Octobre', 'Novembre', 'Décembre'

L'ordre sql en explication plus générique pour trier

L'ordre est donc "order by FIELD(colonne souhaitée, 'valeur1', 'valeur2', 'valeur3', ....)"

Bon tri ...

 

 

mysql order by personnalisée sur une colonne
Note sur 5 Pour 5 votes