Maison >base de données >tutoriel mysql >Comment conserver l'ordre des valeurs dans la fonction `IN()` pour le tri dans MySQL ?

Comment conserver l'ordre des valeurs dans la fonction `IN()` pour le tri dans MySQL ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-12 18:07:01807parcourir

How to Preserve the Order of Values in `IN()` Function for Sorting in MySQL?

MySQL : Préserver l'ordre des fonctions IN() dans le tri

Lors de la récupération d'enregistrements à l'aide d'une fonction IN(), il peut être souhaitable de conserver l'ordre dans lequel les valeurs ont été saisies dans la fonction dans les résultats triés. Par défaut, MySQL classe les résultats en fonction du mécanisme de tri interne de la base de données.

Solution :

Pour trier les résultats par ordre des valeurs dans la fonction IN() , utilisez la fonction FIELD. La fonction FIELD renvoie la position de la première chaîne dans la liste de chaînes restante.

Considérez la requête suivante :

SELECT id, name
FROM mytable
WHERE name IN ('B', 'A', 'D', 'E', 'C')
ORDER BY FIELD(name, 'B', 'A', 'D', 'E', 'C')

Dans cette requête, la fonction FIELD est utilisée dans ORDER BY clause. Il garantit que les résultats sont triés dans le même ordre que les valeurs de la fonction IN() : 'B', 'A', 'D', 'E', 'C'.

Optimisation des performances :

Bien que la fonction FIELD puisse être utilisée pour réaliser le tri souhaité, il est recommandé d'envisager d'indexer une colonne qui représente le tri souhaité. ordre de tri. En créant un index sur cette colonne, MySQL peut optimiser le processus de tri, ce qui entraîne des performances améliorées.

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