A partir de combien de OR doit-on mettre IN dans une requete

Invité
Invité n'ayant pas de compte PHPfrance

31 mai 2007, 16:02

Voilà,

J'aimerais savoir à partir de combien de OR doit-on utiliser IN dans une requete SQL?

Ex :

WHERE id_type = 1 OR id_type = 2 OR id_type = 3

WHERE id_type IN (1,2,3)

Lequel est-il préférable d'utiliser?

Merci.

Administrateur PHPfrance
Administrateur PHPfrance | 3088 Messages

31 mai 2007, 16:14

Il n'y a pas à ma connaissance de différence fonctionnelle entre les deux donc à toi de choisir celui que tu préfères. J'utilise IN() s'il y a la moindre chance d'avoir plusieurs éléments.

Si mes souvenirs sont bons, IN avec un seul élément est marginalement plus lent qu'un simple = mais rien de significatif. À partir de 2 il n'y a plus de différences.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

31 mai 2007, 16:27

Je ne sais pas pour MySQL, mais pour Oracle, le IN est malgré tout limité à 1000 éléments. Bon ca fait de la marge, mais ca peut parfois jouer :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...