lundi 7 janvier 2013

SQL : Trier dans l'ordre des valeurs présentes dans la clause IN()

Si vous avez une requête SQL avec une clause IN(<valeurs>), et que vous souhaitez récupérer les rows dans un ordre bien précis (par exemple dans l'ordre des valeurs présentes dans le IN()), il existe une solution :


Sous MySQL:
SELECT id FROM table1 WHERE id IN(1, 20, 45) ORDER BY FIELD(id, 1, 20, 45)

Sous Oracle:

SELECT id FROM table1 WHERE id IN(1, 20, 45) ORDER BY INSTR('1, 20, 45', id);
Source : http://stackoverflow.com/questions/396748/ordering-by-the-order-of-values-in-a-sql-in-clause



N'hésitez pas à me laisser un petit commentaire :)

Aucun commentaire:

Categories