SQLite AND和OR运算符


SQLite ANDOR运算符用于编译多个条件以缩小SQLite语句中的所选数据。这两个运算符称为连词.

这些运算符提供了一种方法,可以在同一SQLite语句中与不同的运算符进行多次比较。

AND运算符


AND运算符允许SQLite语句的WHERE子句中存在多个条件。使用AND运算符时,当所有条件都为真时,将假定完全条件为真。例如,仅当condition1和condition2均为true时,[condition1] AND [condition2]才为true。

语法

以下是带有WHERE子句的AND运算符的基本语法。

SELECT column1, column2, columnN 
FROM table_name
WHERE [condition1] AND [condition2]...AND [conditionN];

你可以使用AND操作符结合N个条件,对于SQLite语句所采取的行动,无论是事务还是查询,由AND分隔的所有条件必须是TRUE。

考虑带有以下记录的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

以下SELECT语句列出了AGE大于或等于25的所有记录和(AND)薪水大于或等于65000.00。

sqlite> SELECT * FROM COMPANY WHERE AGE >= 25 AND SALARY >= 65000;

ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
4           Mark        25          Rich-Mond   65000.0
5           David       27          Texas       85000.0

OR运算符


OR运算符还用于在SQLite语句的WHERE子句中组合多个条件。使用OR运算符时,如果至少有一个条件为true,则将假定完全条件为true。例如,如果condition1或condition2为true,则[condition1]或[condition2]将为true。

语法

以下是带有WHERE子句的OR运算符的基本语法。

SELECT column1, column2, columnN 
FROM table_name
WHERE [condition1] OR [condition2]...OR [conditionN]

你可以使用OR操作符结合N个条件,对于SQLite语句所采取的行动,无论是事务还是查询,只有一个由OR分隔的条件必须为 "真"。

考虑带有以下记录的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

以下SELECT语句列出了AGE大于或等于25的所有记录或(OR)薪水大于或等于65000.00。

sqlite> SELECT * FROM COMPANY WHERE AGE >= 25 OR SALARY >= 65000;

ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
1           Paul        32          California  20000.0
2           Allen       25          Texas       15000.0
4           Mark        25          Rich-Mond   65000.0
5           David       27          Texas       85000.0