📅  最后修改于: 2021-01-04 05:00:20             🧑  作者: Mango
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可以是任何数字或字符串值。
下表列出了许多示例,这些示例显示WHERE部分具有不同的LIKE子句,并且带有’%’和’_’运算符。
Sr.No. | Statement & Description |
---|---|
1 |
WHERE SALARY LIKE ‘200%’ Finds any values that start with 200 |
2 |
WHERE SALARY LIKE ‘%200%’ Finds any values that have 200 in any position |
3 |
WHERE SALARY LIKE ‘_00%’ Finds any values that have 00 in the second and third positions |
4 |
WHERE SALARY LIKE ‘2_%_%’ Finds any values that start with 2 and are at least 3 characters in length |
5 |
WHERE SALARY LIKE ‘%2’ Finds any values that end with 2 |
6 |
WHERE SALARY LIKE ‘_2%3’ Finds any values that has a 2 in the second position and ends with a 3 |
7 |
WHERE SALARY LIKE ‘2___3’ Finds any values in a five-digit number that starts with 2 and ends with 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
下面是一个示例,它将显示COMPANY表中AGE以2开头的所有记录。
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