Facebook Twitter Pinterest Youtube Instagram RSS

Ordre avec opérateur IN dans MySQL


Mis à jour le 19 avril, 2015

Ordre avec opérateur IN dans MySQL

Quand vous avez à faire plusieurs requête avec différents ID à la même table dans MySQL, l’utilisation de l'opérateur IN vous sera très utile. Si vous aviez une liste d'ID que vous voulez obtenir les données, au lieu de faire des requêtes multiples à la même table on peut combiner ceux-ci dans une seule requête en utilisant IN.

SELECT * FROM foo f where f.id IN (1, 2, 3);

Ceci renvoie un recordset de ces rangées comme les suivantes.

+----+-------+
| id | nom |
+----+-------+
| 1 | un |
| 2 | deux |
| 3 | trois |
+----+-------+
3 rangs dans la série (0.00 sec)

Mais le problème avec cette requête est que l'ordre avec lequel vous passez  ces ID dans la déclaration IN ne fait aucune différence à la façon dont il est retourné. Si j'avais une liste d'ID 2, 3, 1 et je voulais obtenir les données de ces ID, je peux utiliser la déclaration IN pour obtenir ces données.

SELECT * FROM foo f where f.id IN (2, 3, 1);

Le recordset retourné va utiliser la clé primaire pour ordonner les données. On obtiendra alors exactement la même chose qu’avec la première requête. Toutefois, je veux que le recordset soit organiser avec le même ordre que j’ai spécifié dans ma requête.

+----+--------+
| id | nom |
+----+--------+
| 2 | deux |
| 3 | trois |
| 1 | un |
+----+--------+
3 rangs in set (0.00 sec)

Afin de maintenir l'ordre de la déclaration IN, je dois définir l'ordre de mon choix à l'aide de la déclaration ORDER BY FIELD(), ce qui me permet de spécifier le champ et les valeurs que je veux qu'ils soient retournée. 

SELECT * FROM foo f where f.id IN (2, 3, 1) ORDER BY FIELD(f.id, 2, 3, 1);

 


comments powered by Disqus




Les avis des clients

Avis des utilisateurs


Faites entendre votre voix. Passez en revue votre fournisseur d'hébergement Web - bon ou mauvais.


Cela fait maintenant plus de 5 ans que je suis hébergé chez EX2. J'ai donc assez de recul pour partager mon expérience. Mon choix de cet hébergeur c'est fait par internet. Mes principales priorités étaient : 1) un hébergement qui puisse faire tourner sans ralentissement des CMS comme Joomla ou Word …

Denis Clay à propos Ex2hosting

Montrer une autre revue
Lire les avis Ex2hosting



Plans d'hébergement




Les plans d'hébergement de 55 sociétés d'hébergement partout dans le monde


Meilleur hébergeurs web

# hébergeur web prix action

1

Infomaniak France

6.75 EURO

Ajouter un Avis
Visiter

2

Hostpapa France

2.95 EURO

Ajouter un Avis
Visiter

3

Greengeeks

4.95 USD

Ajouter un Avis
Visiter

4

Siteground

6.95 USD

Ajouter un Avis
Visiter

5

Planethoster France

5.99 EURO

Ajouter un Avis
Visiter

6

Bluehost

6.95 USD

Ajouter un Avis
Visiter




Hébergeurs par avis de clients

Planethoster France
77 avis des clients
Hostpapa France
72 avis des clients
Infomaniak France
54 avis des clients
Rapidenet
50 avis des clients
Hostinger
47 avis des clients
Ajouter un avis Tous les profils


Hébergeurs par fidélité de clients

Planethoster France
73 / 77 recommandé
Infomaniak France
54 / 54 recommandé
Rapidenet
49 / 50 recommandé
Hostinger
44 / 47 recommandé
Hostpapa France
37 / 72 recommandé
Évaluer hébergeur Tous les profils


Question de la Semaine


Votre avis sur notre site



Contacter l'éditeur

Posez votre question