169 votes

Comment définir une commande ORDER BY personnalisée dans mySQL

Dans MySQL, comment définir un ordre de tri personnalisé.

Pour essayer d'expliquer ce que je veux considérer ce tableau:

 ID  Language    Text
0   ENU         a
0   JPN         b
0   DAN         c       
1   ENU         d
1   JPN         e
1   DAN         f
2   etc...

ici, je veux retourner toutes les lignes triées par langue et par ID croissant afin que Langue = ENU vienne en premier, puis JPN et enfin DAN.

Le résultat doit être : a,d,b,e,c,f etc.

Est-ce seulement possible?

2voto

Prahlad Points 321

Pour le cadre Yii2, nous pouvons réaliser de la manière suivante

 Project::find()
->orderBy([
    new Expression('FIELD(pid_is_t_m,2,0,1)'),
    'task_last_work'=> SORT_ASC
])->all();

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X