Maison > Article > base de données > Comment trier les résultats MySQL par ordre de clause IN() à l'aide de la fonction FIELD ?
Utilisation de la fonction FIELD pour trier les résultats par ordre IN()
Dans MySQL, la clause ORDER BY peut être utilisée pour trier les résultats de la requête dans ordre croissant ou décroissant. Lors de l'utilisation de la méthode IN(), il peut être difficile de garantir que les résultats sont renvoyés dans le même ordre que les ID dans la clause IN(). Heureusement, il existe une solution : la fonction FIELD.
La fonction FIELD prend deux paramètres : un nom de champ et une liste de valeurs. Il renvoie l'index de la première valeur de la liste qui correspond à la valeur du champ. Par exemple, la requête suivante renverrait les valeurs 1, 2, 3 pour la colonne « id » pour les lignes où la valeur est 3, 2 ou 1 :
SELECT id, FIELD(id, 3, 2, 1) AS ordering FROM table_name;
Pour classer les résultats par IN(), transmettez simplement les valeurs de la clause IN() comme deuxième paramètre à la fonction FIELD :
SELECT id, FIELD(id, 4, 7, 3, 8, 9) AS ordering FROM table_name;
Cela renverra les résultats dans l'ordre spécifié :
4 - Article 4 7 - Article 7 3 - Article 3 8 - Article 8 9 - Article 9
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!