Sqlite 简明教程
SQLite - GLOB Clause
SQLite GLOB 运算符用于使用通配符将文本值与模式匹配。如果搜索表达式可以与模式表达式匹配,GLOB 运算符将返回真,即 1。与 LIKE 运算符不同,GLOB 区分大小写,并且遵循 UNIX 语法来指定以下通配符。
SQLite GLOB operator is used to match only text values against a pattern using wildcards. If the search expression can be matched to the pattern expression, the GLOB operator will return true, which is 1. Unlike LIKE operator, GLOB is case sensitive and it follows syntax of UNIX for specifying THE following wildcards.
-
The asterisk sign (*)
-
The question mark (?)
星号 (*) 表示零或多个数字或字符。问号 (?) 表示单个数字或字符。
The asterisk sign (*) represents zero or multiple numbers or characters. The question mark (?) represents a single number or character.
Syntax
以下是 * 和 ? 的基本语法。
Following is the basic syntax of * and ?.
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 '????'
你可以使用 AND 或 OR 运算符结合 N 个条件。此处,XXXX 可以是任何数字或字符串值。
You can combine N number of conditions using AND or OR operators. Here, XXXX could be any numeric or string value.
Example
下表列出了多个示例,其中显示了 WHERE 部分包含使用“*”和“?”运算符的不同 GLOB 子句。
Following table lists a number of examples showing WHERE part having different GLOB clause with '*' and '?' operators.
Sr.No. |
Statement & Description |
1 |
WHERE SALARY GLOB '200'* Finds any values that start with 200 |
2 |
WHERE SALARY GLOB '*200'* Finds any values that have 200 in any position |
3 |
WHERE SALARY GLOB '?00'* Finds any values that have 00 in the second and third positions |
4 |
WHERE SALARY GLOB '2??' Finds any values that start with 2 and are at least 3 characters in length |
5 |
WHERE SALARY GLOB '*2' Finds any values that end with 2 |
6 |
WHERE SALARY GLOB '?2*3' Finds any values that have a 2 in the second position and end with a 3 |
7 |
WHERE SALARY GLOB '2???3' Finds any values in a five-digit number that start with 2 and end with 3 |
让我们举一个现实的例子,考虑包含以下记录的 COMPANY 表 −
Let us take a real example, consider COMPANY table with the following records −
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 开头的记录。
Following is an example, which will display all the records from COMPANY table, where AGE starts with 2.
sqlite> SELECT * FROM COMPANY WHERE AGE GLOB '2*';
这将产生以下结果。
This will produce the following result.
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 文本中包含连字符 (-) 的记录 −
Following is an example, which will display all the records from COMPANY table where ADDRESS will have a hyphen (-) inside the text −
sqlite> SELECT * FROM COMPANY WHERE ADDRESS GLOB '*-*';
这将产生以下结果。
This will produce the following result.
ID NAME AGE ADDRESS SALARY
---------- ---------- ---------- ---------- ----------
4 Mark 25 Rich-Mond 65000.0
6 Kim 22 South-Hall 45000.0