Maison > base de données > tutoriel mysql > Comment définir un ordre de tri personnalisé dans MySQL à l'aide de FIELD() ?

Comment définir un ordre de tri personnalisé dans MySQL à l'aide de FIELD() ?

Mary-Kate Olsen
Libérer: 2024-12-27 03:59:10
original
325 Les gens l'ont consulté

How to Define a Custom Sorting Order in MySQL Using FIELD()?

Ordre des données avec un ordre personnalisé dans MySQL

Dans MySQL, définir un ordre de tri personnalisé est possible avec la fonction FIELD(). Cette fonction évalue la valeur d'un champ par rapport à une liste de valeurs et renvoie une valeur numérique basée sur la position de la valeur dans la liste. En tirant parti de cette fonction, vous pouvez spécifier l'ordre souhaité pour des valeurs spécifiques.

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
Copier après la connexion

Pour renvoyer les lignes triées par langue et ID ascendant, ENU étant le première priorité, suivi de JPN, puis de DAN, vous pouvez utiliser la clause ORDER BY suivante :

ORDER BY FIELD(Language,'ENU','JPN','DAN'), ID
Copier après la connexion

Cette requête demande à MySQL de trier les résultats par le champ Langue, en utilisant les valeurs « ENU », « JPN » et « DAN » comme ordre de tri personnalisé. Les lignes avec la valeur « ENU » dans le champ Langue apparaîtront en premier, suivies de celles avec « JPN » et enfin celles avec « DAN ». Au sein de chaque groupe de langues, les lignes seront classées par ID croissant.

Il est important de noter que :

  • La fonction FIELD() peut limiter la portabilité de votre SQL, comme d'autres SGBD peut ne pas le prendre en charge.
  • Pour des listes de valeurs plus grandes à trier, il est généralement plus efficace de créer une table séparée avec une colonne d'ordre de tri et de la joindre à votre requêtes pour la commande.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal