Maison >base de données >tutoriel mysql >Comment trier les résultats dans une clause MySQL \'IN\' ?

Comment trier les résultats dans une clause MySQL \'IN\' ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-03 01:49:29636parcourir

How to Order Results in a MySQL

Trier les résultats par valeurs dans la clause MySQL "IN"

Dans une instruction de clause "IN" dans MySQL, les résultats sont généralement renvoyés dans un manière désordonnée. Cependant, il existe des moyens de trier les résultats en fonction des valeurs spécifiées dans la clause.

Utilisation de la fonction FIELD()

Une approche consiste à utiliser la fonction FIELD( ), qui renvoie la position d'une valeur spécifiée dans une liste. En utilisant cette fonction, vous pouvez trier manuellement les résultats dans l'ordre souhaité. La syntaxe est la suivante :

ORDER BY FIELD(column, value1, value2, ..., valueN)

Exemple

Considérons l'exemple suivant :

SELECT * FROM account_records
WHERE id IN (5,2,6,8,12,1)
ORDER BY FIELD(id,5,2,6,8,12,1);

Dans cette requête, les résultats seront renvoyé dans l'ordre spécifié dans les arguments de la fonction FIELD(), qui sont les valeurs de la clause "IN".

Alternativement, en utilisant une table temporaire

Comme mentionné , vous pouvez également envisager de créer une table temporaire pour réaliser le tri souhaité. Les étapes impliqueraient :

  1. Créer une table temporaire avec les valeurs de la clause "IN".
  2. Rejoindre la table principale avec la table temporaire sur la colonne "id".
  3. Tri des résultats en fonction des valeurs de la table temporaire.

Bien que cette approche puisse fournir une solution plus polyvalente, elle est moins efficace que l'utilisation de la fonction FIELD() pour des tâches simples. exigences de tri.

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