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

Основной учебник по SQLite

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

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

GLOB-пункт SQLite

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

  • Звездочка (*)

  • Вопросительный знак (?)

Звездочка (*) означает ноль или несколько чисел или символов. Вопросительный знак (?)代表着 один символ или цифру.

Грамматика

Ниже приведена основная грамматика*и?

SELECT FROM table_name WHERE column GLOB 'XXXX*'
или 
SELECT FROM table_name WHERE column GLOB '*XXXX*'
или  
SELECT FROM table_name WHERE column GLOB 'XXXX?'
или  
SELECT FROM table_name WHERE column GLOB '?XXXX'
или  
SELECT FROM table_name WHERE column GLOB '?XXXX?'
или  
SELECT FROM table_name WHERE column GLOB '????'

Вы можете использовать операторы AND или OR для комбинирования нескольких условий. Здесь XXXX может быть любым числовым или строковым значением.

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

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

НомерОписание и объяснение
1

WHERE SALARY GLOB '200*'

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

2

WHERE SALARY GLOB '*200*'

Найти любое значение, в котором в любом месте стоит 200

3

WHERE SALARY GLOB '?00*'

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

4

WHERE SALARY GLOB '2??'

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

5

WHERE SALARY GLOB '*2'

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

6

WHERE SALARY GLOB '?2*3'

Найти любое значение, вторая позиция которого содержит 2 и заканчивается на 3

7

WHERE SALARY GLOB '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 '*-*';

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

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