4 votes

Instruction SQL IN et classement des résultats

J'ai une liste d'identifiants délimitée 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 veux que l'ordre des résultats soit le même que celui de la liste originale.

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, donc je récupère les résultats dans l'ordre où ils apparaissent dans la base de données - c'est juste, mais je veux que les résultats soient dans le même ordre que la liste originale, je veux que SQL récupère d'abord 3, puis 1, etc....

Existe-t-il une commande SQL pour faire cela ou dois-je simplement arranger le résultat de la manière dont j'en ai besoin en mélangeant les tableaux ? Quelle est la meilleure façon de procéder ?

merci

Prograide.com

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.

Powered by:

X