Maison >base de données >tutoriel mysql >Comment trier les enregistrements MySQL par une séquence spécifique à l'aide de IN() ?

Comment trier les enregistrements MySQL par une séquence spécifique à l'aide de IN() ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-16 00:06:03320parcourir

How to Order MySQL Records by a Specific Sequence Using IN()?

Classement MySQL par séquence spécifiée à l'aide de IN()

Cette question tourne autour de la récupération des enregistrements de base de données dans un ordre spécifique en fonction d'un tableau d'identifiants fourni en PHP. Le défi est de s'assurer que les résultats correspondent à l'ordre des identifiants dans la méthode IN().

Pour y parvenir, la solution recommandée utilise la fonction FIELD. Bien que principalement destiné à la manipulation de chaînes, FIELD fonctionne également de manière transparente avec des valeurs numériques. En utilisant la fonction FIELD dans la clause ORDER BY, vous pouvez spécifier explicitement l'ordre souhaité des enregistrements.

Par exemple, considérons l'instruction SQL suivante :

ORDER BY FIELD(field_name, 3,2,5,7,8,1)

Dans cette instruction, field_name représente la colonne contenant les ID. Les nombres entre parenthèses représentent l'ordre dans lequel les enregistrements doivent être récupérés. Par conséquent, si la colonne field_name contient les valeurs (3,2,5,7,8,1), les enregistrements seront renvoyés dans l'ordre : 3, 2, 5, 7, 8, 1.

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