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

Comment trier les résultats par ordre de valeurs dans une clause \'IN\' dans MySQL ?

Barbara Streisand
Libérer: 2024-11-04 05:15:29
original
909 Les gens l'ont consulté

How to Sort Results by Order of Values in an

Comment trier les résultats par ordre de valeurs dans la clause "IN" d'une instruction SELECT dans MySQL

Lors de la récupération d'un ensemble d'enregistrements à l'aide d'un "IN" dans une instruction SELECT, l'ordre résultant des lignes peut ne pas s'aligner sur l'ordre des valeurs spécifiées dans la clause, laissant les résultats désordonnés. Pour résoudre ce problème, une approche courante consiste à établir une table temporaire et à utiliser une opération de jointure. Cependant, il existe une solution plus simple et plus efficace.

En utilisant la fonction FIELD(), vous pouvez spécifier l'ordre de tri souhaité dans la clause "IN" elle-même. Cette fonction évalue une valeur par rapport à une liste d'arguments fournis, renvoyant la position du premier argument auquel elle correspond. En classant les arguments dans l'ordre souhaité, vous pouvez trier efficacement les résultats en fonction des valeurs de la clause "IN".

Par exemple, en considérant l'instruction SELECT suivante :

<code class="sql">SELECT * FROM your_table
WHERE id IN (5,2,6,8,12,1);</code>
Copier après la connexion

Pour trier les résultats dans l'ordre des valeurs spécifiées dans la clause "IN", vous pouvez modifier la requête comme suit :

<code class="sql">SELECT * FROM your_table
WHERE id IN (5,2,6,8,12,1)
ORDER BY FIELD(id,5,2,6,8,12,1);</code>
Copier après la connexion

En spécifiant les valeurs dans l'ordre de tri souhaité comme arguments du FIELD( ), les résultats seront renvoyés dans cet ordre exact. Cela élimine le besoin d'une table temporaire et d'une jointure, offrant une solution plus simple et plus efficace pour trier les résultats en fonction des valeurs de la clause "IN".

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal