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"中选择所有记录,其中FEES以2开头。
SELECT * FROM STUDENT WHERE FEES GLOB '2*';
输出: