J'ai une liste d'identifiants délimités par des virgules que je veux utiliser pour extraire des enregistrements de la base de données. Je peux utiliser l'instruction IN pour obtenir les résultats mais je souhaite que l'ordre des résultats soit le même que celui de la liste d'origine.Instruction SQL IN et ordonnancement des résultats
EG
$list = "3,1,4,2,5";
$query = "SELECT * FROM table WHERE id IN (" . $list . ")";
$result = @mysql_query($query);
while($row=mysql_fetch_array($result)){
echo($row['id']. ", "); // returns 1, 2, 3, 4, 5
}
OK si je reçois les résultats dans l'ordre qu'ils apparaissent dans la base de données - assez juste, mais je veux que les résultats soient dans le même ordre que la liste initiale, je veux SQL pour récupérer 3 en premier, puis 1 etc ...
Y a-t-il une commande SQL pour faire ceci ou dois-je juste arranger le résultat comme j'en ai besoin par un brassage de tableau? Quelle est la meilleure façon de procéder?
grâce
http://stackoverflow.com/questions/396748/ordering-by-the-order-of-values-in-a-sql-in-clause – webbiedave