Учебники

SQLite — предложение GLOB

Оператор 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 '*-*';

Это даст следующий результат.