oracle glob,SQLite GLOB子句

本文详细介绍了 SQLite 中 GLOB 操作符的使用方法及其通配符特性,包括星号(*)和问号(?)的具体应用,并通过示例展示了如何进行模式匹配查询。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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*';

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

334c3d4d059edc7e8e82ace556ba5789.png

例2:

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

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

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

4da124f5d12c5e3501232c6625fb79bd.png

¥ 我要打赏

纠错/补充

收藏

加QQ群啦,易百教程官方技术学习群

注意:建议每个人选自己的技术方向加群,同一个QQ最多限加 3 个群。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值