LIKE
operator
Description
An expression with the LIKE
operator returns TRUE
if the text string matches the given pattern.
If the pattern does not contain percent signs or underscores, it is interpreted literally, in which case LIKE
acts as an equality operator:
SELECT
'Tengri' LIKE 'Tengri' AS result;
+--------+
| result |
+--------+
| true |
+--------+
If a pattern has special characters, it is interpreted as a regular expression rather than literally:
-
An underscore
_
in the pattern corresponds to any single character. -
The percent sign
%
in the pattern corresponds to any sequence of zero or more characters.
The LIKE
pattern match is always applied to the entire string. Therefore, if you want to match a sequence anywhere in the string (cover a substring with the pattern), the pattern must begin and end with the %
percent sign.
You can also use the opposite expressions <string> NOT LIKE <pattern>
and NOT string LIKE <pattern>
:
SELECT
NOT 'Tengri' LIKE 'Tengri' AS result_1,
'Tengri' NOT LIKE 'Tengri' AS result_2;
+----------+----------+
| result_1 | result_2 |
+----------+----------+
| false | false |
+----------+----------+
ILIKE
operator
The ILIKE
operator can be used instead of LIKE
to make matching case insensitive:
SELECT
'Tengri' ILIKE 'tengri' AS result_1,
'Tengri' ILIKE '%NGRi' AS result_2;
+----------+----------+
| result_1 | result_2 |
+----------+----------+
| true | true |
+----------+----------+
Examples
-
Let’s show some examples of how
LIKE
templates work:SELECT 'Tengri' LIKE 'TNGRi' AS result_1, 'Tengri' LIKE 'T%' AS result_2, 'TNGRi' LIKE 'T%' AS result_3, 'Tengri' LIKE 'T_____' AS result_4;
+----------+----------+----------+----------+ | result_1 | result_2 | result_3 | result_4 | +----------+----------+----------+----------+ | false | true | true | true | +----------+----------+----------+----------+
-
Let us select from the table of capitals the countries in which the capital begins with
M
:CREATE TABLE capitals (country VARCHAR, capital VARCHAR); INSERT INTO capitals VALUES ('Russia', 'Moscow'), ('Italy', 'Rome'), ('Spain', 'Madrid'), ('France', 'Paris'); SELECT country FROM capitals WHERE capital LIKE 'M%';
+---------+ | country | +---------+ | Russia | +---------+ | Spain | +---------+