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
WHEREcolumn_
SELECT FROM table_name##oWXXXE?
##or
SELECT FROM table_name
WHERE column GLOB '?XXXX'
or
#SELECT FROM table_name
#WHERE?column
SELECT FROM table_name
WXXXE?columnXXXGLGLOB ?'
or
SELECT FROM table_nameWHERE column GLOB 'XXXX*'
or
SELECT FROM table_name
WHERE column GLOB '*XXXX*'
or
#SELECT FROM table_name
WHEREcolumn_
SELECT FROM table_name##oWXXXE?
##or
SELECT FROM table_name
WHERE column GLOB '?XXXX'
or
#SELECT FROM table_name
#WHERE?column
SELECT FROM table_name
WXXXE?columnXXXGLGLOB ?'
or
您可以使用AND 或OR 運算子來結合N個數量的條件。在這裡,XXXX 可以是任何數字或字串值。
實例
語句 | |
---|---|
WHERE SALARY GLOB '200*' | |
WHERE SALARY GLOB '*200*' | |
WHERE SALARY GLOB '?00*' | |
WHERE SALARY GLOB '2??' | |
WHERE SALARY GLOB '*2' | |
WHERE SALARY GLOB '?2*3' | |
WHERE SALARY GLOB '2???3 ' |
讓我們舉一個實際的例子,假設COMPANY 表有以下記錄:
ID NAME AGE ----- ---------- ---------- ----------
1 Paul 32 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 開頭的所有記錄:1 Paul 32 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
這將產生以下結果:
ID NAME AGE ------ ---------- ----------
2 Allen 25 Teddy 23 Norway 20000.0
4 Rich- Mond 65000.0
5 David 27 )10 Kim 22 South-Hall 45000.0
7 Houston 10000.0
#下方是實例,它顯示COMPANY 表中ADDRESS 文字裡包含一個連字符(-)的所有記錄:
2 Allen 25 Teddy 23 Norway 20000.0
4 Rich- Mond 65000.0
5 David 27 )10 Kim 22 South-Hall 45000.0
7 Houston 10000.0
#下方是實例,它顯示COMPANY 表中ADDRESS 文字裡包含一個連字符(-)的所有記錄:
sqlite> SELECT * FROM COMPANY WHERE ADDRESS GLOB '*-*';
這將產生以下結果:
ID NAME AGE 且-------- ------- ----------
4 Mark 25 22 South-Hall 45000.0