SQL LIKE Operator
The SQL LIKE Operator
LIKE operator is used in a
WHERE clause to search for a specified pattern in a column.
There are two wildcards often used in conjunction with the
- The percent sign
%represents zero, one, or multiple characters
- The underscore sign
_represents one, single character
You will learn more about wildcards in the next chapter.
Select all customers that starts with the letter "a":
WHERE CustomerName LIKE 'a%';
SELECT column1, column2, ...
WHERE columnN LIKE pattern;
Below is a selection from the Customers table used in the examples:
||Alfreds Futterkiste||Maria Anders||Obere Str. 57||Berlin||12209||Germany|
|2||Ana Trujillo Emparedados y helados||Ana Trujillo||Avda. de la Constitución 2222||México D.F.||05021||Mexico|
|3||Antonio Moreno Taquería||Antonio Moreno||Mataderos 2312||México D.F.||05023||Mexico|
||Around the Horn||Thomas Hardy||120 Hanover Sq.||London||WA1 1DP||UK|
|5||Berglunds snabbköp||Christina Berglund||Berguvsvägen 8||Luleå||S-958 22||Sweden|
The _ Wildcard
_ wildcard represents a single character.
It can be any character or number, but each
_ represents one, and only one, character.
Return all customers from a city that starts with 'L' followed by one wildcard character, then 'nd' and then two wildcard characters:
WHERE city LIKE 'L_nd__';
The % Wildcard
% wildcard represents any number of characters, even zero characters.
Return all customers from a city that contains the letter 'L':
WHERE city LIKE '%L%';
To return records that starts with a specific letter or phrase, add the
% at the end of the letter or phrase.
Return all customers that starts with 'La':
WHERE CustomerName LIKE 'La%';
Tip: You can also combine any number of conditions using
Return all customers that starts with 'a' or starts with 'b':
WHERE CustomerName LIKE 'a%' OR CustomerName LIKE 'b%';
To return records that ends with a specific letter or phrase, add the
% at the beginning of the letter or phrase.
Return all customers that ends with 'a':
WHERE CustomerName LIKE '%a';
Tip: You can also combine "starts with" and "ends with":
Return all customers that starts with "b" and ends with "s":
WHERE CustomerName LIKE 'b%s';
To return records that contains a specific letter or phrase, add the
% both before and after the letter or phrase.
Return all customers that contains the phrase 'or'
WHERE CustomerName LIKE '%or%';
Any wildcard, like
, can be used in combination with other
Return all customers that starts with "a" and are at least 3 characters in length:
WHERE CustomerName LIKE 'a__%';
Return all customers that have "r" in the second position:
WHERE CustomerName LIKE '_r%';
If no wildcard is specified, the phrase has to have an exact match to return a result.
Return all customers from Spain:
WHERE Country LIKE 'Spain';