Оператор SQLite GLOB используется для сопоставления только текстовых значений с шаблоном с использованием подстановочных знаков. Если поисковое выражение может быть сопоставлено с выражением шаблона, оператор GLOB вернет true, которое равно 1. В отличие от оператора LIKE, GLOB чувствителен к регистру и соответствует синтаксису UNIX для указания следующих подстановочных знаков.
- Знак звездочки (*)
- Знак вопроса (?)
Знак звездочки (*) представляет ноль или несколько цифр или символов. Знак вопроса (?) Представляет одно число или символ.
Синтаксис
Ниже приведен основной синтаксис * и ? ,
SELECT FROM table_name WHERE column GLOB 'XXXX*' or SELECT FROM table_name WHERE column GLOB '*XXXX*' or SELECT FROM table_name WHERE column GLOB 'XXXX?' or SELECT FROM table_name WHERE column GLOB '?XXXX' or SELECT FROM table_name WHERE column GLOB '?XXXX?' or SELECT FROM table_name WHERE column GLOB '????'
Вы можете объединить N условий с помощью операторов И или ИЛИ. Здесь XXXX может быть любым числовым или строковым значением.
пример
В следующей таблице приведен ряд примеров, показывающих, где часть WHERE имеет различные предложения LIKE с ‘*’ и ‘?’ операторы.
Sr.No. | Заявление и описание |
---|---|
1 |
ГДЕ ЗНАКОМНАЯ ГЛОБ ‘200 *’ Находит любые значения, которые начинаются с 200 |
2 |
ГДЕ ГЛОБАЛЬНАЯ ПЛАТА ‘* 200 *’ Находит любые значения, которые имеют 200 в любой позиции |
3 |
ГДЕ ГЛОБАЛЬНАЯ ПЛАТА ‘? 00 *’ Находит любые значения, которые имеют 00 во второй и третьей позиции |
4 |
Где заработная плата GLOB ‘2 ??’ Находит любые значения, которые начинаются с 2 и имеют длину не менее 3 символов |
5 |
ГДЕ ГЛОБАЛЬНАЯ ПЛАТА ‘* 2’ Находит любые значения, которые заканчиваются на 2 |
6 |
ГДЕ ГЛОБАЛЬНАЯ ПЛАТА ‘? 2 * 3’ Находит любые значения, которые имеют 2 во второй позиции и заканчиваются на 3 |
7 |
ГДЕ ЗНАЧИТЕЛЬНЫЙ ГЛОБ ‘2 ??? 3’ Находит любые значения в пятизначном числе, которые начинаются с 2 и заканчиваются на 3 |
ГДЕ ЗНАКОМНАЯ ГЛОБ ‘200 *’
Находит любые значения, которые начинаются с 200
ГДЕ ГЛОБАЛЬНАЯ ПЛАТА ‘* 200 *’
Находит любые значения, которые имеют 200 в любой позиции
ГДЕ ГЛОБАЛЬНАЯ ПЛАТА ‘? 00 *’
Находит любые значения, которые имеют 00 во второй и третьей позиции
Где заработная плата GLOB ‘2 ??’
Находит любые значения, которые начинаются с 2 и имеют длину не менее 3 символов
ГДЕ ГЛОБАЛЬНАЯ ПЛАТА ‘* 2’
Находит любые значения, которые заканчиваются на 2
ГДЕ ГЛОБАЛЬНАЯ ПЛАТА ‘? 2 * 3’
Находит любые значения, которые имеют 2 во второй позиции и заканчиваются на 3
ГДЕ ЗНАЧИТЕЛЬНЫЙ ГЛОБ ‘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 GLOB '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 GLOB '*-*';
Это даст следующий результат.