SQLite GLOB子句

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表中选择fees2开头所有记录:

SELECT * FROM student WHERE fees  GLOB '2*';

执行上面代码,输出结果如下 –

《SQLite GLOB子句》

例2:

student表中选择address包含an字符所有记录:

SELECT * FROM student WHERE address  GLOB '*an*';

执行上面代码,输出结果如下 –

《SQLite GLOB子句》

        原文作者:SQLite教程
        原文地址: https://www.yiibai.com/sqlite/glob-clause.html
        本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
    点赞