SQLite Glob语句

SQLite GLOB 运算符使用通配符仅将文本值与模式匹配。当搜索表达式与模式表达式匹配时,GLOB 运算符将返回 true,即 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”的表,其中包含以下数据:

在这些示例中,WHERE 语句具有带有“*”和“?”运算符的不同 BLOB 子句:

SQL语句 描述
WHERE FEES GLOB '200*' 查找以 200 开头的任何值
WHERE FEES GLOB '*200*' 查找任何位置有 200 的任何值
WHERE FEES GLOB '?00*' 查找在第二个和第三个位置有 00 的任何值
WHERE FEES GLOB '?00*' 查找以 2 开头且长度至少为 3 个字符的任何值
WHERE FEES GLOB'*2' 查找以 2 结尾的任何值
WHERE FEES GLOB'*2' 查找在第二个位置具有 2 并以 3 结尾的任何值
WHERE FEES GLOB '2???3' 查找五位数字中以 2 开头并以 3 结尾的任何值

示例 1:

从“STUDENT”表中选择AGE以2开头的所有记录:

WHERE FEES GLOB '2???3'

输出结果:

示例2:

从表“STUDENT”中选择费用以 2 开头的所有记录:

SELECT * FROM STUDENT WHERE FEES  GLOB '2*';   

输出结果为:

热门文章

优秀文章