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.


Efficace - disponible - support par mail avec des réponses de qualité. Tout cela en français. Que demander de plus. J'ai eu l'experience de 2 autres hébergeurs: 101Domain - en anglais (pas facile pour le support quand on ne maitrise pas les termes techniques) GoDaddy (prix d'entrée alléchant …

Dali à propos Ex2hosting

Montrer une autre revue
Lire les avis Ex2hosting



Plans d'hébergement




Les plans d'hébergement de 58 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

Ex2hosting

3.99 EURO

Ajouter un Avis
Visiter

7

Bluehost

6.95 USD

Ajouter un Avis
Visiter






Hébergeurs par avis de clients

1and1 France
75 avis des clients
Magic-Online
65 avis des clients
Infomaniak France
51 avis des clients
Rapidenet
50 avis des clients
Planethoster France
37 avis des clients
Ajouter un avis Tous les profils


Hébergeurs par fidélité de clients

Infomaniak France
51 / 51 recommandé
Rapidenet
49 / 50 recommandé
Magic-Online
44 / 65 recommandé
Infomaniak Suisse
36 / 36 recommandé
Planethoster France
34 / 37 recommandé
Évaluer hébergeur Tous les profils


Question de la Semaine


Le plus important critère de votre hébergeur



Contacter l'éditeur

Posez votre question