SQLite-ANDおよびOR演算子

SQLiteの AND および OR 演算子を使用して、複数の条件をコンパイルし、SQLiteステートメントで選択したデータを絞り込みます。 これらの2つの演算子は、*結合演算子*と呼ばれます。

これらの演算子は、同じSQLiteステートメントで異なる演算子と複数の比較を行う手段を提供します。

AND演算子

*AND* 演算子を使用すると、SQLiteステートメントのWHERE句に複数の条件を含めることができます。 AND演算子を使用している間、すべての条件が真の場合、完全な条件が真であると想定されます。 たとえば、[condition1] AND [condition2]は、condition1とcondition2の両方がtrueの場合にのみ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以上、給与が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演算子を使用している場合、少なくともいずれかの条件が真である場合、完全な条件が真であると見なされます。 たとえば、condition1またはcondition2のいずれかが真の場合、[condition1] OR [condition2]は真になります。

構文

以下は、WHERE句を使用したOR演算子の基本構文です。

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

OR演算子を使用して、 N 個の条件を組み合わせることができます。 SQLiteステートメントがアクションを実行するためには、トランザクションであろうとクエリであろうと、ORで区切られた条件のいずれか1つのみが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以上、または給与が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