Maison >base de données >tutoriel mysql >Comment puis-je prioriser les ordres de tri personnalisés dans MySQL ?

Comment puis-je prioriser les ordres de tri personnalisés dans MySQL ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-14 08:11:11524parcourir

How Can I Prioritize Custom Sorting Orders in MySQL?

Personnalisation de la priorité de tri dans MySQL

Dans MySQL, définir un ordre de tri personnalisé vous permet de prioriser des critères spécifiques lors de la récupération des données. L'une de ces tâches consiste à trier un tableau avec plusieurs valeurs dans une colonne.

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
2   etc...

Pour récupérer des données triées par langue et par ID ascendant, ENU étant la première priorité , JPN le deuxième et DAN le troisième, vous pouvez utiliser la fonction FIELD() de MySQL. Cette fonction attribue une position à chaque valeur de langue en fonction de l'ordre fourni.

Voici la requête pour y parvenir :

SELECT *
FROM table_name
ORDER BY FIELD(Language, 'ENU', 'JPN', 'DAN'), ID;

Cela renverra les données dans l'ordre suivant : a, d , b, e, c, f. Cependant, il est important de noter que :

  • L'utilisation de FIELD() peut avoir un impact sur la portabilité, car d'autres SGBD pourraient ne pas prendre en charge cette fonction.
  • Pour des listes de valeurs étendues, il est préférable de créer une table séparée avec une colonne "sortOrder". En joignant cette table à la table principale, vous pouvez réaliser un tri personnalisé sans les limitations de FIELD().

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!

Déclaration:
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