The LIKE operator is used in the WHERE clause of SQL queries. It's a keyword used to perform a search according to a specific pattern in a column.

For example, you can search for records whose value in a column begins with a particular letter.

The sort of patterns are numerous and are tackled later on in the post.

1. Syntax

The syntax to use the LIKE operator is as follows:

SELECT column1, column2, ... 
FROM table_name
WHERE columnN LIKE pattern;

In this example the pattern has not been defined, we generally define those with a SQL wildcard.

2. Defining patterns with wildcards

There are two main types of wildcards often used with the LIKE operator:

  • Percentage sign character - %
  • Underscore character - _

> Note: MS Access uses an asterisk and a question mark ? In place of the percentage and underscore signs.

2.1 Percentage sign %

The character "%" is a wild card that replaces all other characters

WHERE EmployeeName LIKE 'a%'

Return records where EmployeeName starts with an “a”.

WHERE EmployeeName LIKE ' %a'

Return records where EmployeeName ends with an “a”.

WHERE EmployeeName LIKE '%or%'

Return records where EmployeeName has "or" in any position

WHERE EmployeeName LIKE 'pa%on'

This pattern allows you to find strings that start with “pa” and end with “on”, like “pants” or “pardon”.

2.2 Underscore _

The underscore wildcard is generally used less than the percentage sign, the character _ can be replaced by any character, but only one character. On the other hand, the percentage symbol % can be replaced by an incalculable number of characters.

WHERE EmployeeName LIKE ‘a_c’

Returns records where EmployeeName is “aac”, “abc” or even “azc”, etc..

WHERE EmployeeName LIKE '_a%'

Returns records where EmployeeName has an "a" in it’s second character position

WHERE EmployeeName LIKE 'a__%'

Returns records where EmployeeName starts with "a" and are at least 3 characters in length

3. Real life examples

Let's imagine we have a Customer table that contains the following user records

Id PersonName City
1 Anna Nottingham
2 John Brighton
3 Daniel Norwich
4 Sarah Plymouth

Let's say we want to get only customers from cities that start with an “N”, you can use the following query:

SELECT * FROM Customer WHERE City LIKE 'N%

With this query, only the following records will be returned:

Id PersonName City
1 Anna Nottingham
3 Daniel Norwich