Maison > Article > base de données > Comment conserver l'ordre des valeurs dans la fonction `IN()` pour le tri dans 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!