SQLite WHERE 子句条件可以使用 AND、OR 和 NOT 运算符进行组合。这些运算符用于处理多个条件。
- AND - 用于组合多个条件,如果 AND 运算符分隔的所有条件都为 true,则显示一条记录。
- OR - 用于组合多个条件,如果用 OR 运算符分隔的任何条件为真,则显示一条记录。
- NOT - 用于显示指定条件不成立的记录。
语法
在 SQLite 中使用这些运算符的语法如下:
/* AND 运算符*/
SELECT column1, column2, column3, ...
FROM table_name
WHERE condition1 AND condition2 AND condtion3 ....;
/* OR 运算符*/
SELECT column1, column2, column3, ...
FROM table_name
WHERE condition1 OR condition2 OR condtion3 ....;
/* NOT 运算符*/
SELECT column1, column2, column3, ...
FROM table_name
WHERE NOT condition;
示例:
考虑一个名为 Employee 的数据库表,其中包含以下记录:
EmpID | Name | City | Age | Salary |
---|---|---|---|---|
1 | John | London | 25 | 3000 |
2 | Marry | New York | 24 | 2750 |
3 | Jo | Paris | 27 | 2800 |
4 | Kim | Amsterdam | 30 | 3100 |
5 | Ramesh | New Delhi | 28 | 3000 |
6 | Huang | Beijing | 28 | 2800 |
AND 示例:选择 Employee 表中 Salary 大于 2800 且 Age 小于30的所有记录,查询如下。
SELECT * FROM Employee
WHERE Salary > 2800 AND Age < 30;
以下代码的结果将是:
EmpID | Name | City | Age | Salary |
---|---|---|---|---|
1 | John | London | 25 | 3000 |
5 | Ramesh | New Delhi | 28 | 3000 |
OR 示例:选择 Employee 表中 Salary 大于 2800 或 Age小于25的所有记录,查询如下。
SELECT * FROM Employee
WHERE Salary > 2800 OR Age < 25;
这将产生如下所示的结果:
EmpID | Name | City | Age | Salary |
---|---|---|---|---|
1 | John | London | 25 | 3000 |
2 | Marry | New York | 24 | 2750 |
4 | Kim | Amsterdam | 30 | 3100 |
5 | Ramesh | New Delhi | 28 | 3000 |
NOT 示例:要选择 Employee 表中 City 不是"New Delhi"的所有记录,查询如下。
SELECT * FROM Employee
WHERE NOT City = 'New Delhi';
查询结果如下所示:
EmpID | Name | City | Age | Salary |
---|---|---|---|---|
1 | John | London | 25 | 3000 |
2 | Marry | New York | 24 | 2750 |
3 | Jo | Paris | 27 | 2800 |
4 | Kim | Amsterdam | 30 | 3100 |
6 | Huang | Beijing | 28 | 2800 |