SQLite GLOB
SQLite GLOB
在本教程中,您将学习如何使用 SQLite GLOB 运算符来确定字符串是否与特定模式匹配。
GLOB 运算符与 LIKE 运算符类似。GLOB 运算符确定字符串是否与特定模式匹配。
与 LIKE 运算符不同,GLOB 运算符区分大小写并使用 UNIX 通配符。此外,GLOB 模式没有转义字符。
以下显示了与 GLOB 运算符一起使用的通配符:
- 星号 (*) 通配符可匹配任意数量的字符。
- 问号(?)通配符正好匹配一个字符。
除了这些通配符之外,您还可以使用列表通配符 [] 来匹配字符列表中的一个字符。例如,[xyz] 匹配任何单个 x、y 或 z 字符。
列表通配符还允许使用一定范围的字符,例如 [a-z] 匹配从 a 到 z 的任何单个小写字符。[a-zA-Z0-9] 模式匹配任何单个字母数字字符(包括小写和大写)。
此外,还可以使用列表开头的字符 ^ 来匹配除列表中任意字符之外的任意字符。例如,[^0-9] 模式匹配除数字字符之外的任意单个字符。
SQLite GLOB 案例
以下语句查找名称以字符串 Man 开头的曲目。模式 Man* 与任何以 Man 开头的字符串匹配。
SELECT
trackid,
name
FROM
tracks
WHERE
name GLOB 'Man*';

以下查询查找名称以任意单个字符 (?) 开头、后跟字符串 ere 以及任意数量的字符 (*) 的曲目。
SELECT
trackid,
name
FROM
tracks
WHERE
name GLOB '?ere*';
要查找名称包含数字的曲目,可以使用列表通配符 [0-9],如下所示:
SELECT
trackid,
name
FROM
tracks
WHERE
name GLOB '*[1-9]*';

或者,要查找名称中不包含任何数字的曲目,您可以在列表开头放置字符 ^:
SELECT
trackid,
name
FROM
tracks
WHERE
name GLOB '*[^1-9]*';

以下语句查找名称以数字结尾的曲目。
SELECT
trackid,
name
FROM
tracks
WHERE
name GLOB '*[1-9]';

浙公网安备 33010602011771号