SQLite GLOB操作符通過使用通配符將模式表達(dá)式與文本值匹配, 當(dāng)搜索表達(dá)式與模式表達(dá)式匹配時(shí),GLOB運(yùn)算符將返回真,該值為:1。
GLOB運(yùn)算符遵循UNIX的語法,使用指定以下通配符。
*): 符號表示零個(gè)或多個(gè)數(shù)字或字符。?): 符號表示單個(gè)數(shù)字或字符。語法:
星號(*)符號的語法:
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 '????'
假設(shè)有一個(gè)名為“STUDENT”的表,并具有以下數(shù)據(jù):
sqlite> SELECT * FROM STUDENT;
1|Maxsu|27|Shengzheng|20000.0
2|Minsu|25|Beijing|15000.0
3|Avgsu|23|Shanghai|2000.0
4|Linsu|25|Guangzhou|65000.0
5|Sqlsu|26|Hainan|25000.0
6|Javasu|21|Shengzheng|18000.0
sqlite>
在下面這些示例中,WHERE語句具有不同的BLOB子句,帶有’*‘和’?‘運(yùn)算符:
| 語句 | 描述 |
|---|---|
WHERE FEES GLOB '200*' |
查找以200開頭的任何值 |
WHERE FEES GLOB '*200*' |
查找包含200的任何值 |
WHERE FEES GLOB '?00*' |
查找在第二和第三個(gè)位置是00的任何值 |
WHERE FEES GLOB '2??' |
查找以2開頭并且長度至少為3個(gè)字符的值 |
WHERE FEES GLOB'*2' |
查找以2結(jié)尾的任何值 |
WHERE FEES GLOB '?2*3' |
查找具有第二個(gè)位置是2并以3結(jié)尾的任何值 |
WHERE FEES GLOB '2???3' |
查找以2開頭并以3結(jié)尾的五位數(shù)字的任何值 |
例1:
從student表中選擇fees以2開頭所有記錄:
SELECT * FROM student WHERE fees GLOB '2*';
執(zhí)行上面代碼,輸出結(jié)果如下 -

例2:
從student表中選擇address包含an字符所有記錄:
SELECT * FROM student WHERE address GLOB '*an*';
執(zhí)行上面代碼,輸出結(jié)果如下 -
