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
Barbara Streisandoriginal
2024-11-04 05:15:29978parcourir

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>

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>

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!

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