SQLite GLOB子句
SQLite GLOB运算符仅通过使用通配符将文本值与模式进行匹配。当搜索表达式与模式表达式匹配时,GLOB运算符将返回true,即1。
GLOB运算符遵循UNIX的语法,用于指定以下通配符。
- 星号符号(*): 表示零个或多个数字或字符
- 问号(?): 表示一个数字或字符。
语法:
星号符号的语法:
SELECT FROM table_name
WHERE column GLOB 'XXXX*'
or
SELECT FROM table_name
WHERE column GLOB '*XXXX*'
问号的语法:
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 '????'
示例:
我们有一个名为“STUDENT”的表,其中包含以下数据:
在这些示例中,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”表中选择所有年龄以2开头的记录:
SELECT * FROM STUDENT WHERE AGE GLOB '2*';
输出:
示例2:
从表“STUDENT”中选择所有费用以2开头的记录:
SELECT * FROM STUDENT WHERE FEES GLOB '2*';
输出: