Lors du tri des données dans MySQL, la clause ORDER BY vous permet de personnaliser l'ordre de tri au-delà des options ascendantes ou décroissantes par défaut. Un défi courant consiste à définir une priorité de tri spécifique pour plusieurs valeurs dans une colonne.
Question :
Considérez le tableau suivant :
ID | Language | Text |
---|---|---|
0 | ENU | a |
0 | JPN | b |
0 | DAN | c |
1 | ENU | d |
1 | JPN | e |
1 | DAN | f |
Comment trier ce tableau par Langue (ENU en premier, JPN en second, DAN en dernier) puis par ordre croissant ID?
Réponse :
MySQL fournit la fonction FIELD() qui permet des ordres de tri personnalisés. Il prend une valeur et vérifie sa position dans une liste spécifiée. Grâce à cette fonction, nous pouvons définir la priorité de tri souhaitée comme suit :
ORDER BY FIELD(Language, 'ENU', 'JPN', 'DAN'), ID
Cette requête renverra les données dans l'ordre suivant :
a, d, b, e, c, f, etc.
Considérations :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!