SQLite LIKE子句
SQLite的 LIKE 运算符用于使用通配符匹配文本值与模式。如果搜索表达式能匹配模式表达式,LIKE运算符将返回true,即1。与LIKE运算符配合使用的有两种通配符:百分号(%
)和下划线(_
)。
- 百分号(
%
)代表零个、一个或多个数字或字符。 - 下划线(
_
)代表一个数字或字符。这些符号可以组合使用。
语法如下:
%和_的基本语法如下所示。
SELECT FROM table_name
WHERE column LIKE 'XXXX%'
or
SELECT FROM table_name
WHERE column LIKE '%XXXX%'
or
SELECT FROM table_name
WHERE column LIKE 'XXXX_'
or
SELECT FROM table_name
WHERE column LIKE '_XXXX'
or
SELECT FROM table_name
WHERE column LIKE '_XXXX_'
您可以使用AND或OR运算符组合N个条件。这里,XXXX可以是任何数字或字符串值。
示例
下表列出了一些示例,显示具有不同LIKE子句的WHERE部分,使用’%’和’_’运算符。
序号 | 语句和描述 |
---|---|
1 | WHERE SALARY LIKE ‘200%’ 查找任何以200开头的值 |
2 | WHERE SALARY LIKE ‘%200%’ 查找任何位置包含200的值 |
3 | WHERE SALARY LIKE ‘_00%’ 查找以00为第二和第三个位置的值 |
4 | WHERE SALARY LIKE ‘2_%_%’ 查找以2开头且至少为3个字符长度的值 |
5 | WHERE SALARY LIKE ‘%2’ 查找以2结尾的值 |
6 | WHERE SALARY LIKE ‘_2%3’ 查找以第二个位置为2且以3结尾的值 |
7 | WHERE SALARY LIKE ‘2___3’ 查找以2开头以3结尾的五位数值 |
让我们以一个真实的例子来说明,考虑以下记录的COMPANY表。
ID NAME AGE ADDRESS SALARY
---------- ---------- ---------- ---------- ----------
1 Paul 32 California 20000.0
2 Allen 25 Texas 15000.0
3 Teddy 23 Norway 20000.0
4 Mark 25 Rich-Mond 65000.0
5 David 27 Texas 85000.0
6 Kim 22 South-Hall 45000.0
7 James 24 Houston 10000.0
以下是一个示例,它将显示所有AGE以2开头的记录从COMPANY表中。
sqlite> SELECT * FROM COMPANY WHERE AGE LIKE '2%';
这将产生以下结果。
ID NAME AGE ADDRESS SALARY
---------- ---------- ---------- ---------- ----------
2 Allen 25 Texas 15000.0
3 Teddy 23 Norway 20000.0
4 Mark 25 Rich-Mond 65000.0
5 David 27 Texas 85000.0
6 Kim 22 South-Hall 45000.0
7 James 24 Houston 10000.0
以下是一个示例,将会显示出COMPANY表中所有ADDRESS字段中包含连字符(-)的记录。
sqlite> SELECT * FROM COMPANY WHERE ADDRESS LIKE '%-%';
这将产生以下结果。
ID NAME AGE ADDRESS SALARY
---------- ---------- ---------- ---------- ----------
4 Mark 25 Rich-Mond 65000.0
6 Kim 22 South-Hall 45000.0