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 :
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!