SQL - Clause LIKE

Le SQL LIKELa clause est utilisée pour comparer une valeur à des valeurs similaires à l'aide d'opérateurs génériques. Deux caractères génériques sont utilisés en conjonction avec l'opérateur LIKE.

  • Le signe de pourcentage (%)
  • Le trait de soulignement (_)

Le signe de pourcentage représente zéro, un ou plusieurs caractères. Le trait de soulignement représente un seul nombre ou caractère. Ces symboles peuvent être utilisés dans des combinaisons.

Syntaxe

La syntaxe de base de% et _ est la suivante -

SELECT FROM table_name
WHERE column LIKE 'XXXX%'

or 

SELECT FROM table_name
WHERE column LIKE '%XXXX%'

or

SELECT FROM table_name
WHERE column LIKE 'XXXX_'

or

SELECT FROM table_name
WHERE column LIKE '_XXXX'

or

SELECT FROM table_name
WHERE column LIKE '_XXXX_'

Vous pouvez combiner N nombre de conditions à l'aide des opérateurs AND ou OR. Ici, XXXX peut être n'importe quelle valeur numérique ou chaîne.

Exemple

Le tableau suivant contient quelques exemples montrant la partie WHERE ayant une clause LIKE différente avec les opérateurs '%' et '_' -

N ° Sr. Déclaration et description
1

WHERE SALARY LIKE '200%'

Recherche toutes les valeurs commençant par 200.

2

WHERE SALARY LIKE '%200%'

Recherche toutes les valeurs qui ont 200 dans n'importe quelle position.

3

WHERE SALARY LIKE '_00%'

Recherche toutes les valeurs qui ont 00 dans les deuxième et troisième positions.

4

WHERE SALARY LIKE '2_%_%'

Recherche toutes les valeurs commençant par 2 et comportant au moins 3 caractères.

5

WHERE SALARY LIKE '%2'

Recherche toutes les valeurs qui se terminent par 2.

6

WHERE SALARY LIKE '_2%3'

Recherche toutes les valeurs qui ont un 2 en deuxième position et se terminent par un 3.

sept

WHERE SALARY LIKE '2___3'

Recherche toutes les valeurs d'un nombre à cinq chiffres commençant par 2 et se terminant par 3.

Prenons un exemple réel, considérons la table CUSTOMERS ayant les enregistrements comme indiqué ci-dessous.

+----+----------+-----+-----------+----------+
| ID | NAME     | AGE | ADDRESS   | SALARY   |
+----+----------+-----+-----------+----------+
|  1 | Ramesh   |  32 | Ahmedabad |  2000.00 |
|  2 | Khilan   |  25 | Delhi     |  1500.00 |
|  3 | kaushik  |  23 | Kota      |  2000.00 |
|  4 | Chaitali |  25 | Mumbai    |  6500.00 |
|  5 | Hardik   |  27 | Bhopal    |  8500.00 |
|  6 | Komal    |  22 | MP        |  4500.00 |
|  7 | Muffy    |  24 | Indore    | 10000.00 |
+----+----------+-----+-----------+----------+

Voici un exemple, qui afficherait tous les enregistrements de la table CUSTOMERS, où le SALAIRE commence par 200.

SQL> SELECT * FROM CUSTOMERS
WHERE SALARY LIKE '200%';

Cela produirait le résultat suivant -

+----+----------+-----+-----------+----------+
| ID | NAME     | AGE | ADDRESS   | SALARY   |
+----+----------+-----+-----------+----------+
|  1 | Ramesh   |  32 | Ahmedabad |  2000.00 |
|  3 | kaushik  |  23 | Kota      |  2000.00 |
+----+----------+-----+-----------+----------+