Maison >base de données >tutoriel mysql >Comment puis-je garantir la commande dans les requêtes MySQL IN ?
Préserver l'ordre dans les requêtes MySQL "IN"
Dans MySQL, l'ordre des lignes dans un résultat de requête "IN" s'aligne généralement sur le clé primaire ou tout index défini. Toutefois, ce comportement peut ne pas respecter l'ordre spécifié dans la requête. Pour conserver l'ordre souhaité, envisagez la solution suivante :
Utilisation de FIELD() pour une commande personnalisée :
La fonction FIELD() évalue la position d'une valeur donnée dans une liste de valeurs séparées par des virgules. En utilisant cette fonction dans la clause ORDER BY, vous pouvez spécifier l'ordre souhaité des résultats. Par exemple :
SELECT * FROM foo f WHERE f.id IN (2, 3, 1) ORDER BY FIELD(f.id, 2, 3, 1);
Dans cette requête modifiée, la liste d'arguments de FIELD() représente l'ordre souhaité : 2, 3 et 1. Par conséquent, les résultats seront affichés dans l'ordre suivant :
id | name |
---|---|
2 | second |
3 | third |
1 | first |
Contrairement à la requête d'origine, cette modification garantit l'ordre spécifié, offrant une plus grande flexibilité lors de la récupération des données d'une table et garantissant que les résultats correspondent à vos attentes.
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!