SQLite GLOB
操作符通過使用萬用字元將模式表示式與文字值匹配, 當搜尋表示式與模式表示式匹配時,GLOB
運算子將返回真,該值為:1
。
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 '????'
假設有一個名為「STUDENT
」的表,並具有以下資料:
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子句,帶有’*
‘和’?
‘運算子:
語句 | 描述 |
---|---|
WHERE FEES GLOB '200*' |
查詢以200 開頭的任何值 |
WHERE FEES GLOB '*200*' |
查詢包含200 的任何值 |
WHERE FEES GLOB '?00*' |
查詢在第二和第三個位置是00 的任何值 |
WHERE FEES GLOB '2??' |
查詢以2 開頭並且長度至少為3 個字元的值 |
WHERE FEES GLOB'*2' |
查詢以2結尾的任何值 |
WHERE FEES GLOB '?2*3' |
查詢具有第二個位置是2 並以3 結尾的任何值 |
WHERE FEES GLOB '2???3' |
查詢以2 開頭並以3 結尾的五位數位的任何值 |
例1:
從student
表中選擇fees
以2
開頭所有記錄:
SELECT * FROM student WHERE fees GLOB '2*';
執行上面程式碼,輸出結果如下 -
例2:
從student
表中選擇address
包含an
字元所有記錄:
SELECT * FROM student WHERE address GLOB '*an*';
執行上面程式碼,輸出結果如下 -