MySQL spécifiant l'ordre exact OÙ `id` DANS (...)
Est-il un moyen facile de commande MySQL résultats respectivement par OÙ id
DANS (...) de la clause?
Exemple:
SELECT * FROM articles WHERE articles.id IN (4, 2, 5, 9, 3)
de retour
Article with id = 4
Article with id = 2
Article with id = 5
Article with id = 9
Article with id = 3
et aussi
SELECT * FROM articles WHERE articles.id IN (4, 2, 5, 9, 3) LIMIT 2,2
de retour
Article with id = 5
Article with id = 9
Mise à jour: pour être plus précis, je veux éviter d'altérer les données entre parenthèses dans WHERE articles.id IN (4, 2, 5, 9, 3)
, depuis ces Identifiants sont dynamiques et automatiquement commandés.
OriginalL'auteur Gray Fox | 2010-06-02
Vous devez vous connecter pour publier un commentaire.
Ouais, genre:
mais c'est non-standard SQL et les odeurs un peu.
Les résultats sont exactement ce que je cherchais, merci beaucoup.
OriginalL'auteur bobince
Cela fonctionne pour moi:
COMMANDE PAR CHAMP Produit.id, 4,9,8,5,3,11,24,16)
find_in_set
a pris 0,03 seconde etfield
a pris de 0,02 secondes. Je suppose que cette différence deviendraient de plus en plus marquée avec des ensembles plus larges. J'ai testé aussi avec une "LIMITE de 2" clause etfind_in_set
réellement pris plus de temps, de 0,04 sec, tandis quefield
encore pris 0.02 sec. Personnellement, je pense 0.02 sec est encore assez lent. L'OP doit être prudent de ne pas transmettre dans les grands ensembles de données ou il va prendre une performances!OriginalL'auteur amstegraf
MySQL ne sortes de la COMMANDE PAR. C'est pourquoi il n'est pas très rare pour les tables de base de données pour avoir quelque chose comme un ordinality colonne.
OriginalL'auteur Peter Bailey
Je ne pense pas que vous pouvez le faire. Il n'y a pas "explicite" de la commande; "dans la" déclaration vous indique simplement ce que pour récupérer, et n'a pas d'informations sur la commande.
Depuis les exemples que vous avez donné n'ai aucun ordre apparent, votre meilleur pari est de les traiter dans le code, après le résultat est retourné.
OriginalL'auteur jvenema