SQLite 函数

SQLite LIKE() 函数在 WHERE 子句中使用来搜索指定列中的指定模式。

  • LIKE(X,Y) 函数用于实现"Y LIKE X"表达式。
  • 使用可选的第三个参数实现 ESCAPE 子句,例如 - LIKE(X,Y,Z) 函数相当于"Y LIKE X [ESCAPE Z]"表达式。
  • NOT 关键字可以与该函数一起使用来实现" NOT LIKE"表达式。

与此函数结合使用的通配符如下:

SQLite 中的通配符

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

语法

在 SQLite 中使用 LIKE() 函数的语法如下:

/* 使用LIKE() 函数*/
SELECT column1, column2, ...
FROM table_name
WHERE LIKE(pattern, column);

/* 使用NOT LIKE() 函数*/
SELECT column1, column2, ...
FROM table_name
WHERE NOT LIKE(pattern, column); 

表格下面描述了与 LIKE() 函数一起使用的模式,并使用 (%) 和 (_)。

Pattern描述
'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 LIKE('Jo%', Name); 

这将生成结果如下所示:

EmpIDNameCityAgeSalary
1JohnLondon253000
3JoParis272800

在 NOT LIKE() 函数中使用 % 通配符:NOT LIKE()函数用作 LIKE() 函数的否定。例如,要选择 Employee 表中 Name 不以"Jo"开头的所有记录,可以使用以下查询:

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

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

EmpIDNameCityAgeSalary
2MarryNew York242750
4KimAmsterdam303100
5RameshNew Delhi283000
6HuangBeijing282800

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

SELECT * FROM Employee
WHERE LIKE('_o%', Name); 

上述代码的结果将为:

EmpIDNameCityAgeSalary
1JohnLondon253000
3JoParis272800

使用 _ 通配符与 NOT LIKE() 函数:选择Employee 表的所有记录,Name 不包含 'o' 作为第二个字符,查询如下:.

SELECT * FROM Employee
WHERE NOT LIKE('_o%', Name); 

以上结果代码为:

EmpIDNameCityAgeSalary
2MarryNew York242750
4KimAmsterdam303100
5RameshNew Delhi283000
6HuangBeijing282800