Maison >base de données >tutoriel mysql >Comment trier les résultats d'une requête MySQL par ordre de valeur à l'aide de la clause IN
Tri des résultats par ordre de valeur dans une clause MySQL "IN"
Dans MySQL, sélection d'enregistrements dans une grande table à l'aide d'un "IN" La clause entraîne souvent des résultats désordonnés. Pour les scénarios où l'ordre des résultats est crucial, une solution de contournement est nécessaire pour obtenir l'ordre souhaité.
Approche inefficace : table temporaire
Initialement, la suggestion était de créer une table temporaire avec les valeurs de la clause "IN" et effectuez une opération de jointure. Cependant, cette approche peut s'avérer inefficace pour les grands ensembles de données.
Solution efficace : fonction FIELD()
Au lieu d'utiliser une jointure, la fonction FIELD() fournit une méthode efficace alternative à l'ordre des résultats en fonction des valeurs de la clause "IN". La fonction FIELD() prend deux arguments :
En utilisant la fonction FIELD() dans la clause ORDER BY, les résultats peuvent être classés en fonction de l'ordre des valeurs dans la clause "IN":
<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>
Documentation de la fonction FIELD()
Référez-vous à la documentation MySQL pour plus d'informations sur la fonction FIELD() :
[Fonction MySQL FIELD() Référence](https://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_field)
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!