je la requête suivanteobtenir le résultat de mysql orderd par clause IN
SELECT * FROM invoice WHERE invoice_id IN (13, 15, 9, 27)
Mon résultat est:
invoice_id | invoice_number | ...
------------------------------------
9 | 201006003 |
13 | 201006020 |
15 | 201006022 |
27 | 201006035 |
qui est le jeu de résultat que je veux, sauf ce qui est ordonné par le invoice_id (qui est une valeur auto-incrémentée).
Maintenant, je veux le résultat dans l'ordre que j'ai spécifié dans ma requête (13, 15, ...). Y a-t-il un moyen d'obtenir cela?
L'arrière-plan est que j'ai un DataTable lié à un DataGridView. L'utilisateur peut filtrer et trier le résultat, mais s'il veut imprimer le résultat, je n'utilise pas le DataTable pour l'impression car il contient seulement les colonnes les plus importantes et je retire les enregistrements entiers de la base de données et les passe à mon contrôle d'impression .
J'ai également essayé d'étendre le DataTable existant avec les résultats manquants mais cela semble plus lent que d'utiliser la requête IN (...).
Je ne pense pas que ce soit possible simplement en utilisant un orderby, mais il y a des solutions de contournement. Pouvez-vous générer une autre requête, ou est-ce que orderby est votre seul choix? – simendsjo