2011-09-30 5 views
2

J'ai des problèmes de tri des résultats de MySQL. Voici le code:Ordre requête MySQL par plusieurs ID

$my_query = " 
SELECT * 
FROM tbl1, tbl2, tbl3 
WHERE tbl1.id = tbl2.id2 
    AND tbl1.sub_id = tbl3.sub_id 
    AND tbl1.id IN(22, 55, 5, 10, 40, 2001, 187) 
"; 

Cette requête fonctionne très bien, mais quand je l'imprime, il est commandé par tbl1.id ASC. Je veux afficher le même ordre que j'ai utilisé dans IN(22,55,5,10,40,2001,187).

Je pense que c'est possible, mais j'ai fait de mon mieux et je n'ai pas réussi à le réparer. Y a-t-il une solution qui fonctionne pour moi?

+0

grâce ... il était utile pour moi ... –

Répondre

5

Ajouter cette clause ORDER BY qui utilise la fonction FIELD pour obtenir l'ordre que vous voulez:

ORDER BY FIELD(tbl1.id, 22, 55, 5, 10, 40, 2001, 187)