Résultats ordonnés de la clause "IN" dans les instructions MySQL Select
Lors de l'interrogation de grandes tables pour des enregistrements spécifiques à l'aide d'une clause "IN", le l’ordre des résultats par défaut peut être incohérent. Pour obtenir des résultats dans le même ordre que les valeurs de la clause "IN", des approches alternatives doivent être envisagées pour remplacer le comportement par défaut.
Une option consiste à utiliser la fonction FIELD. Cette fonction prend deux paramètres : le premier est la colonne à trier et le second est une liste de valeurs séparées par des virgules dans l'ordre de tri souhaité. En incluant la clause ORDER BY FIELD(column, values) dans la requête, les résultats seront classés selon l'ordre des valeurs spécifié dans la liste des valeurs.
Par exemple, la requête suivante récupère enregistrements avec des ID dans l'ordre spécifié dans la clause "IN":
SELECT * FROM your_table WHERE id IN (5,2,6,8,12,1) ORDER BY FIELD(id,5,2,6,8,12,1);
Ici, la fonction FIELD trie la colonne "id" en fonction de l'ordre des valeurs (5, 2, 6, 8, 12, 1). Les résultats seront renvoyés dans l'ordre spécifié, même pour les grands ensembles de données comportant des millions de lignes.
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!