Sqlite-and-or-clauses
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