Database
 sql >> Base de données >  >> RDS >> Database

Comment utiliser LIKE en SQL

Problème :

Vous souhaitez trouver une sous-chaîne correspondant à un modèle dans une chaîne.

Exemple :

Notre base de données a une table nommée client avec des données dans les colonnes suivantes :id , first_name , last_name , et city .

identifiant prénom nom_de_famille ville
1 Alan Watson Madrid
2 Lisa Noir Singapour
3 Laura Williams Seattle
4 Milan Brique Séoul

Voyons quelques exemples de correspondance de modèles en SQL.

Exemple 1 :

Affichons le prénom, le nom et la ville de chaque client dont le nom de ville commence par la lettre "S".

Solution :

SELECT last_name, first_name, city  
FROM customer
WHERE city LIKE 'S%';
nom_de_famille prénom ville
Lisa Noir S inapore
Milan Brique S eoul
Laura Williams S manger

Nous avons utilisé le caractère générique %, qui représente zéro ou plusieurs caractères inconnus. Ce caractère générique peut être utilisé n'importe où dans la chaîne.

Exemple 2 :

Montrons le prénom, le nom et la ville de chaque client dont le nom de ville contient exactement cinq caractères.

Solution :

SELECT last_name, first_name, city  
FROM customer
WHERE city LIKE '_____';

Voici le résultat :

nom_de_famille prénom ville
Milan Brique Séoul

Le caractère générique de soulignement peut être utilisé pour représenter un seul caractère inconnu. Ainsi, en utilisant cinq d'entre eux à la suite, nous pouvons représenter toutes les chaînes de cinq caractères. Dans notre exemple, la seule ville correspondant à cette description est Séoul.

Exemple 3 :

Montrons le prénom, le nom et la ville de chaque client dont la ville commence par la lettre "S" et a la lettre "o" comme avant-dernier caractère.

Solution :

SELECT last_name, first_name, city  
FROM customer
WHERE city LIKE 'S%o__';

Voici le résultat :

nom_de_famille prénom ville
Lisa Noir S ingapo re
Milan Brique S eo ul

La requête n'a renvoyé que deux enregistrements :Lisa Black de S ingapo re et Milan Brick de S eo ul. Ces villes correspondent au modèle donné. Ici, nous avons combiné les deux caractères génériques pour générer un modèle plus spécifique :toutes les chaînes commençant par une lettre majuscule "S" et contenant un nombre quelconque d'autres caractères après cela, tant que l'avant-dernier caractère est une lettre minuscule "o". '

Discussion :

Si vous souhaitez sélectionner des enregistrements dans lesquels une chaîne correspond à un modèle spécifique, vous pouvez utiliser un LIKE clause comme condition dans un WHERE clause. Après WHERE , indiquez le nom de la colonne (par exemple, city ) suivi d'un LIKE clause spécifiant le modèle de chaîne (par exemple, 'S%o__' ) à rechercher.

Comme nous l'avons vu dans les exemples, vous pouvez utiliser deux caractères spéciaux appelés wildcards pour représenter des caractères inconnus :

  • Le caractère générique '%' indique zéro ou plusieurs caractères.
  • Le caractère générique '_' désigne n'importe quel caractère unique.

Vous pouvez combiner ces caractères génériques pour obtenir des résultats vraiment puissants. Vous pouvez également chaîner plus d'un LIKE état. Enfin, vous pouvez utiliser le NOT opérateur pour trouver des chaînes qui ne sont pas correspondre au modèle donné.