LIKE
Comparaison de chaines de caractères
12/09/2008
2593 lectures
0 commentaire
5/5 (1 vote)
La plupart du temps, quand vous exécuterez des requêtes de sélection, vous utiliserez un WHERE pour poser une condition. Vous utiliserez également les opérateurs de comparaison traditionels pour comparer des valeurs. Mais quand il s'agit de comparer des chaines de caractères, il est parfois mieux d'utiliser LIKE. Cet opérateur permet de comparer deux chaines de caractères d'une manière un peu plus approfondie qu'un simple =. La syntaxe de ce mot clé est très simple :
Imaginez la table suivante :
Nous allons tout d'abord faire une requête simple et sélectionner l'enregistrement de cette table où la marque vaut 'Renault'. La requête est donc simplement la suivante :
Si vous exécutez cette requête, vous obtiendrez simplement ceci :
Imaginons maintenant que vous désriez sélectionner une marque de voiture mais que vous ne vous souvenez plus très bien de l'orthographe de cette marque. Ici, nous allons prendre un exemple stupide mais c'est pour l'exemple :-p Imaginez que vous voulez sélectionner la voiture dont la marque est 'Mercedes' mais vous ne vous souvenez plus si 'Mercedes' s'écrit avec un 's' ou avec un 'c'. Vous devrez alors utiliser le caractère de remplacement '_'. Quand vous mettez ce caractère dans la valeur d'un LIKE, il se substituera à n'importe quel caractère. Tapez donc :
Ici, il va chercher toutes les marques de voiture commençant par 'Mer', qui contiennent n'importe quel caractère ensuite et qui finissent par 'edes'. Vous pouvez très bien substituer plusieurs caractères, ainsi cette requête :
Renverrait le même résultat, c'est-à-dire :
Les caractères ont bien été substitués.
Imaginons maintenant que vous désiriez substituer plusieurs caractères mais vous ne savez pas combien. Si vous ignorez ce nombre, il vous est impossible d'utiliser '_' car vous ne saurez pas combien de fois il devra se répeter. Il faut alors utiliser le second opérateur du LIKE, c'est à dire '%'. Imaginez donc que vous ne vous souvenez plus si 'Renault' prend 1 ou 2 'n'. Voici la requête que vous devriez exécutez pour obtenir le résultat correct :
Si vous exécutez cette requête, vous obtiendrez :
La requête a donc bien sélectionné toutes les voitures dont la marque commence par 'Re' et finit par 'ault'.
Il est également possible de sélectionner toutes les marques différentes de 'Renault'. Pour cela, il suffit d'utiliser la négation de LIKE, c'est à dire NOT LIKE :
Cette requête produit le résultat suivant :
Le programme a donc bien sélectionné toutes les marques de voiture différentes de Renault. Nous vous conseillons d'utiliser LIKE plutôt que d'autres opérateurs quand il s'agit de chaine de caractère, c'est bien plus propre.
Imaginez la table suivante :
Nous allons tout d'abord faire une requête simple et sélectionner l'enregistrement de cette table où la marque vaut 'Renault'. La requête est donc simplement la suivante :
Si vous exécutez cette requête, vous obtiendrez simplement ceci :
Imaginons maintenant que vous désriez sélectionner une marque de voiture mais que vous ne vous souvenez plus très bien de l'orthographe de cette marque. Ici, nous allons prendre un exemple stupide mais c'est pour l'exemple :-p Imaginez que vous voulez sélectionner la voiture dont la marque est 'Mercedes' mais vous ne vous souvenez plus si 'Mercedes' s'écrit avec un 's' ou avec un 'c'. Vous devrez alors utiliser le caractère de remplacement '_'. Quand vous mettez ce caractère dans la valeur d'un LIKE, il se substituera à n'importe quel caractère. Tapez donc :
Ici, il va chercher toutes les marques de voiture commençant par 'Mer', qui contiennent n'importe quel caractère ensuite et qui finissent par 'edes'. Vous pouvez très bien substituer plusieurs caractères, ainsi cette requête :
Renverrait le même résultat, c'est-à-dire :
Les caractères ont bien été substitués.
Imaginons maintenant que vous désiriez substituer plusieurs caractères mais vous ne savez pas combien. Si vous ignorez ce nombre, il vous est impossible d'utiliser '_' car vous ne saurez pas combien de fois il devra se répeter. Il faut alors utiliser le second opérateur du LIKE, c'est à dire '%'. Imaginez donc que vous ne vous souvenez plus si 'Renault' prend 1 ou 2 'n'. Voici la requête que vous devriez exécutez pour obtenir le résultat correct :
Si vous exécutez cette requête, vous obtiendrez :
La requête a donc bien sélectionné toutes les voitures dont la marque commence par 'Re' et finit par 'ault'.
Il est également possible de sélectionner toutes les marques différentes de 'Renault'. Pour cela, il suffit d'utiliser la négation de LIKE, c'est à dire NOT LIKE :
Cette requête produit le résultat suivant :
Le programme a donc bien sélectionné toutes les marques de voiture différentes de Renault. Nous vous conseillons d'utiliser LIKE plutôt que d'autres opérateurs quand il s'agit de chaine de caractère, c'est bien plus propre.





0 commentaires
Ajouter un commentaire