SQLite 通配符用于指定字符串中的一个或多个字符。它与 SQLite LIKE 子句和 SQLite WHERE 子句一起使用搜索指定模式。

SQLite 中的通配符

符号描述示例
%表示零个、一个或多个字符。'J% ' 代表以"J"开头的值,例如 - John、Jo 和 Jack 等。
_代表一个字符。'_o%'表示第二个位置有"o"的值,例如 - John、Jo 和 Journey 等。
ESCAPE允许测试通配符的文字实例,例如 % 或 _'J%!%' ESCAPE '!' 表示以下值以 J 开头,以 % 结尾,例如 John%、Jo% 和 Journey% 等。

下表描述了与 LIKE 一起使用的模式运算符并使用 (%) 和 (_)。

模式描述
'J%'以"J"开头的值。
'%n'以"n"结尾的值。
'%oh%'在任何位置都有"oh"的值。
'_o%'第二个位置有"o"的值。
'J_%'以"J"开头且至少包含 2 个字符的值。
'J__%'以"J"开头且至少包含 3 个字符的值。
'J%n'以"J"开头的值以"n"结尾。

示例:

考虑一个包含名为Employee的表的数据库包含以下记录:

EmpIDNameCityAgeSalary
1JohnLondon253000
2MarryNew York242750
3JoParis272800
4KimAmsterdam303100
5RameshNew Delhi283000
6HuangBeijing282800

使用%通配符:选择Employee 表,Name 以"Jo"开头,查询如下。

SELECT * FROM Employee
WHERE Name LIKE 'Jo%'; 

这将产生如下所示的结果:

EmpIDNameCityAgeSalary
1JohnLondon253000
3JoParis272800

将 % 通配符与 NOT LIKE 运算符一起使用:NOT LIKE 运算符用作 LIKE 运算符的否定。例如,要选择 Employee 表中 Name 不以"Jo"开头的所有记录,可以使用以下查询:

SELECT * FROM Employee
WHERE Name NOT LIKE 'Jo%'; 

这将产生如下所示的结果:

EmpIDNameCityAgeSalary
2MarryNew York242750
4KimAmsterdam303100
5RameshNew Delhi283000
6HuangBeijing282800

使用_通配符:选择Employee 表的所有记录,Name 包含"o"作为第二个字符,查询如下。

SELECT * FROM Employee
WHERE Name LIKE '_o%'; 

上述代码的结果将为:

EmpIDNameCityAgeSalary
1JohnLondon253000
3JoParis272800