MySQL: ordenando query del tipo id IN array

Por exigencia del guión, cuando conectas con Sphinx para hacer una búsqueda, éste devuelve los id\'s de los resultados coincidentes ordenados por relevancia (al menos en nuestro caso, que usamos el método SetFieldWeights).
[matches] => Array
(
 [100] => Array ( [weight] => 100 )
 [50]  => Array ( [weight] => 70 )
 [200] => Array ( [weight] => 30 )
 [30]  => Array ( [weight] => 30 )
)
La pregunta es, ¿cómo hacer que MySQL respete ese mismo orden?. Vamos, que si tenemos un \"SELECT * FROM productos WHERE id IN (100, 50, 200, 30)\" y queremos los resultados justamente en ese orden (100, 50, 200 y 30) tendremos que indicarlo en MySQL de alguna forma, puesto que por defecto (al menos en nuestras pruebas / instalaciones) ordena por la primary key... La respuesta es simple, pero me ha costado tiempo encontrarla, así que ahí queda por si pudiera servir de algo:
SELECT * FROM productos WHERE id IN (100, 50, 200, 30) ORDER BY field(id, 100, 50, 200, 30)
La única referencia que he encontrado ha sido ésta, comparando con PostgreSQL, tal vez alguien más sepa algo ;).

About the author

Óscar
has doubledaddy super powers, father of Hugo and Nico, husband of Marta, *nix user, Djangonaut and open source passionate.