J'ai besoin d'exécuter une requête MySQL où l'ordre est déterminé par une valeur de tableau.
Mon tableau est variable, mais les valeurs qu'il contient correspondent à un champ de la table de base de données appelé "ID". Je souhaite donc que le résultat soit renvoyé dans l'ordre ID 9, 1, 4.
Array ( [0] => 9 [1] => 1 [2] => 4 )
Est-ce possible dans MySQL ou serait-il possible de trier le résultat MySQL $ en utilisant le tableau après? Vous pouvez supposer que les seules valeurs renvoyées sont celles du tableau.
ORDER BY field(id, 9, 1, 4);
http://dev.mysql.com/doc/refman/5.5/fr/string-functions.html#function_field
Vous souhaitez obtenir une liste d'éléments avec les identifiants 5, 2, 1, 3
et les afficher dans le même ordre. Cependant, le simple fait d'exécuter une requête de sélection renverra les éléments de l'ordre 1, 2, 3, 5
.
Pour commander les résultats correctement, vous devez créer une liste d’éléments ORDER BY
décrivant les poids des identifiants. Cela ressemblera à
ORDER BY id = 5 DESC, id = 2 DESC, id = 1 DESC, id = 3 DESC
Allez à ce lien pour obtenir les détails.