SQLite - предложение LIKE
SQLite LIKEОператор используется для сопоставления текстовых значений с шаблоном с использованием подстановочных знаков. Если поисковое выражение может быть сопоставлено с выражением шаблона, оператор LIKE вернет истину, которая равна 1. В сочетании с оператором LIKE используются два подстановочных символа -
- Знак процента (%)
- Подчеркивание (_)
Знак процента представляет собой ноль, одну или несколько цифр или символов. Подчеркивание представляет собой одно число или символ. Эти символы можно использовать в комбинациях.
Синтаксис
Ниже приведен базовый синтаксис% и _.
SELECT FROM table_name
WHERE column LIKE 'XXXX%'
or
SELECT FROM table_name
WHERE column LIKE '%XXXX%'
or
SELECT FROM table_name
WHERE column LIKE 'XXXX_'
or
SELECT FROM table_name
WHERE column LIKE '_XXXX'
or
SELECT FROM table_name
WHERE column LIKE '_XXXX_'
Вы можете комбинировать Nколичество условий с использованием операторов И или ИЛИ. Здесь XXXX может быть любым числовым или строковым значением.
пример
В следующей таблице перечислены несколько примеров, показывающих, что часть WHERE имеет различное предложение LIKE с операторами '%' и '_'.
Sr. No. | Заявление и описание |
---|---|
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
Ниже приведен пример, в котором будут отображаться все записи из таблицы КОМПАНИЯ, где АДРЕС будет иметь дефис (-) внутри текста.
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