Mais où est donc OR par rapport à IN ?

vendredi 8 novembre 2002 :: perrick :: MySQL :: aucun commentaire :: aucun trackback

Il y a quelques temps en épluchant la doc MySQL je suis tombé sur un "comparison operator" intéressant : IN.

Il peut remplacer OR dans une commande SQL : ainsi

"SELECT name, user_id FROM project WHERE id IN (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)"

est équivalent à

"SELECT name, user_id FROM project WHERE id = 1 OR id = 2 OR id = 3 OR id = 4 OR id = 5 OR id = 6 OR id = 7 OR id = 8 OR id = 9 OR id = 10"

Et s'il est plus élégant à mon goût - car plus court, il restait une question en suspens : qui est le lièvre et l'autre la tortue ?
Bilan IN gagne là aussi contre OR : 0.986s contre 1.067s sur 1000 itérations.

PS : il s'agit d'un petit test rapide en local (W2K + Apache 1.3.24 + PHP 4.2.0 + MySQL 3.23.39), pas d'un benchmark complet.