2009-07-08 6 views
2

Je veux écrire une requête SQL en utilisant le mot-clé LIKE. Il devrait rechercher le premier caractère ou le caractère de départ de ma colonne avec le paramètre de recherche.Comment utiliser le mot-clé LIKE dans SQL?

Existe-t-il une syntaxe spécifique pour cela?

Répondre

9

Est-ce que vous cherchez

SELECT * 
FROM yourtable 
WHERE yourcolumn LIKE 'X%' 

Ce trouvera toutes les lignes où yourcolumn commence par la lettre X.

Pour trouver tout ce qui se termine par X:

... 
WHERE yourcolumn LIKE '%X' 

... et contient un X ...

... 
WHERE yourcolumn LIKE '%X%' 
3

Essayez

select * from table where column like 'c%' 

où 'c' est le personnage que vous voulez

1

est ici deux exemples ...

SELECT FirstName 
FROM tblCustomer 
WHERE FirstName LIKE 'B%' 

Le signe% est le caractère générique, donc ce serait retourner tous les résultats où le prénom commence par B.

Cela pourrait être plus efficace si ...

SELECT FirstName 
FROM tblCustomer 
WHERE LEFT(FirstName, 1) = 'B' 
+5

En fait, la deuxième version sera presque certainement moins efficace car il ne peut pas tirer parti d'un index sur la colonne FirstName. –

+0

"Ceci * pourrait être plus efficace si ..." - nous ne savons rien sur la base de données ou s'il existe un index du champ recherché. Le plan d'exécution est roi. – Fenton

+0

Test sur table aléatoire: LIKE: 2 minutes 38 secondes - PATINDEX: 2 minutes 39 secondes - LEFT/LEN: 2 minutes 20 secondes. Un autre tableau fournirait des résultats différents. – Fenton

1

Pour une requête paramétrées qui vous semblent avoir (« recherche dans le premier caractère [...] avec le paramètre de recherche »), utilisez ceci:

SELECT * 
FROM yourtable 
WHERE yourcolumn LIKE ? + '%' 
Questions connexes