English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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 |
Найти любое значение, начинающееся с 200 |
2 |
Найти любое значение, в котором в любом месте стоит 200 |
3 |
Найти любое значение, в котором на втором и третьем местах стоят 00 |
4 |
Найти любое значение, начинающееся с 2 и длиной не менее 3 символов |
5 |
Найти любое значение, заканчивающееся на 2 |
6 |
Найти любое значение, вторая позиция которого содержит 2 и заканчивается на 3 |
7 |
Найти любое значение в пятизначном числе, начинающемся с 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