SQLite LIKE Clause
The LIKE operator in SQLite is used to match text values against a pattern specified with wildcard characters. If the search expression matches the pattern expression, the LIKE operator returns true (1). There are two wildcard characters used with the LIKE operator:
- Percentage Sign (%)
- Underscore (_)
The percentage sign (%) represents zero, one, or multiple numbers or characters. The underscore (_) represents a single number or character. These symbols can be used in combination.
Syntax
The basic syntax for % and _ is as follows:
SELECT column_list
FROM table_name
WHERE column LIKE 'XXXX%'
or
SELECT column_list
FROM table_name
WHERE column LIKE '%XXXX%'
or
SELECT column_list
FROM table_name
WHERE column LIKE 'XXXX_'
or
SELECT column_list
FROM table_name
WHERE column LIKE '_XXXX'
or
SELECT column_list
FROM table_name
WHERE column LIKE '_XXXX_'
You can combine conditions using the AND or OR operators. Here, XXXX can be any numeric or string value.
Examples
The following examples demonstrate different uses of the LIKE clause with '%' and '_' operators:
Statement | Description |
---|---|
WHERE SALARY LIKE '200%' | Finds any values that start with 200 |
WHERE SALARY LIKE '%200%' | Finds any values that have 200 in any position |
WHERE SALARY LIKE '_00%' | Finds any values that have 00 in the second and third positions |
WHERE SALARY LIKE '2_%_%' | Finds any values that start with 2 and are at least 3 characters in length |
WHERE SALARY LIKE '%2' | Finds any values that end with 2 |
WHERE SALARY LIKE '_2%3' | Finds any values that have 2 in the second position and end with 3 |
WHERE SALARY LIKE '2___3' | Finds any values that are 5 characters long, start with 2, and end with 3 |
Let's take a practical example. Suppose the COMPANY table has the following records:
ID NAME AGE ADDRESS SALARY
---------- ---------- ---------- ---------- ----------
1 Paul 32 California 20000.0
2 Allen 25 Texas 15000.0
3 Teddy 23 Norway 20000.0
4 Mark 25 Rich-Mond 65000.0
5 David 27 Texas 85000.0
6 Kim 22 South-Hall 45000.0
7 James 24 Houston 10000.0
The following example shows all records from the COMPANY table where AGE starts with 2:
sqlite> SELECT * FROM COMPANY WHERE AGE LIKE '2%';
This will produce the following result:
ID NAME AGE ADDRESS SALARY
---------- ---------- ---------- ---------- ----------
2 Allen 25 Texas 15000.0
3 Teddy 23 Norway 20000.0
4 Mark 25 Rich-Mond 65000.0
5 David 27 Texas 85000.0
6 Kim 22 South-Hall 45000.0 7 James 24 Houston 10000.0
Below is an example that shows all records in the COMPANY table where the ADDRESS text contains a hyphen (-):
sqlite> SELECT * FROM COMPANY WHERE ADDRESS LIKE '%-%';
This will produce the following result:
ID NAME AGE ADDRESS SALARY
---------- ---------- ---------- ---------- ----------
4 Mark 25 Rich-Mond 65000.0
6 Kim 22 South-Hall 45000.0