English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Учебник SQLite для начинающих

Учебник SQLite для продвинутых

Программный интерфейс SQLite

Предложение LIKE в SQLite

Оператор LIKE в SQLite используется для сравнения текстовых значений с шаблоном с помощью подстановочных знаков. Если строка поиска соответствует шаблону, оператор LIKE возвращает true, то есть 1. В операторе LIKE используются два подстановочных знака

  • Процентный символ (%)

  • Подчеркнутый символ (_)

Процентный символ (%) означает ноль, один или несколько чисел или символов. Подчеркнутый символ (_) означает один символ. Эти символы могут быть использованы вместе.

Грамматика

Ниже приведена основная грамматика % и _.

SELECT FROM table_name WHERE column LIKE 'XXXX%'
или 
SELECT FROM table_name WHERE column LIKE '%XXXX%'
или 
SELECT FROM table_name WHERE column LIKE 'XXXX_'
или
SELECT FROM table_name WHERE column LIKE '_XXXX'
или
SELECT FROM table_name WHERE column LIKE '_XXXX_'

Можете использовать операторы логического И (AND) или ИЛИ (OR) для комбинирования n условий. Здесь XXXX может быть любым числовым или строковым значением.

Онлайн примеры

В таблице ниже приведены многие примеры, показывающие, что часть WHERE содержит различные LIKE подзапросы, содержащие операторы '%' и '_'.

НомерДекларации и пояснения
1

WHERE SALARY LIKE '200%'

Найти любое значение, начинающееся с 200

2

WHERE SALARY LIKE '%200%'

Найти любое значение, где в любом месте есть 200

3

WHERE SALARY LIKE '_00%'

Найти любое значение, где второе и третье места имеют 00

4

WHERE SALARY LIKE '2_%_%'

Найти любое значение, начинающееся с 2 и длиной не менее 3 символов

5

WHERE SALARY LIKE '%2'

Найти любое значение, заканчивающееся на 2

6

WHERE SALARY LIKE '_2%3'

Найти любое значение, начинающееся со второго места с 2 и заканчивающееся на 3

7

WHERE SALARY LIKE '2___3'

Найти любое значение в пятизначном числе, начинающемся с 2 и заканчивающемся на 3

Давайте рассмотрим реальный пример, рассмотрим таблицу COMPANY с следующими записями.

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

Ниже приведен пример, который покажет все записи из таблицы COMPANY, где AGE начинается с 2.

sqlite> SELECT * FROM COMPANY WHERE AGE LIKE '2%';

Это приведет к следующим результатам。

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

Ниже приведен пример, который покажет все записи из таблицы COMPANY, где ADDRESS содержит дефис (-).

sqlite> SELECT * FROM COMPANY WHERE ADDRESS  LIKE '%-%';

Это приведет к следующим результатам。

ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
4           Mark        25          Rich-Mond   65000.0
6           Kim          22          South-Hall  45000.0