J'ai utilisé une requête mysql où il y a "where id in ("22,20,21")". mais quand j'obtiens le résultat, c'est comme un tableau ordonné dans un ordre croissant, c'est-à-dire 20,21,20.
mais j'en ai besoin dans le même ordre que celui de la clause.
J'ai utilisé une requête mysql où il y a "where id in ("22,20,21")". mais quand j'obtiens le résultat, c'est comme un tableau ordonné dans un ordre croissant, c'est-à-dire 20,21,20.
mais j'en ai besoin dans le même ordre que celui de la clause.
Comme mentionné... WHERE
n'a aucune incidence sur l'ordre des résultats. Utilisez MySQL intégré FIELD
fonction en ORDER BY
pour spécifier comment l'ensemble des résultats doit être ordonné :
... WHERE id IN (22, 20, 21) ORDER BY FIELD(id, 22, 20, 21) ...
Vous ne pouvez pas spécifier l'ordre dans lequel les résultats seront retournés dans un fichier de type WHERE
clause. Si vous voulez spécifier l'ordre, vous devez ajouter une clause ORDER BY
à votre requête. Pour une solution qui utilise FIND_IN_SET
voir cette réponse .
En général, le système de base de données renvoie les résultats dans l'ordre qui lui convient. Si vous voulez qu'ils soient ordonnés, vous devez le lui dire. Cet article de blog fournit une méthode pour y parvenir ; vous pouvez peut-être trouver d'autres solutions en ligne.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.