SQL AND演算子

WHERE句には1つ以上のAND演算子を含めることができます。

AND演算子は、複数の条件に基づいてレコードをフィルタリングするために使用されます。例えば、スペイン出身で名前が ‘G’ で始まるすべての顧客を返したい場合です。

スペイン出身で名前が ‘G’ で始まるすべての顧客を選択します:

SELECT *
FROM Customers
WHERE Country = 'Spain' AND CustomerName LIKE 'G%';

構文

SELECT column1, column2, ...
FROM table_name
WHERE condition1 AND condition2 AND condition3 ...;

ANDとOR

AND演算子は、すべての条件がTRUEである場合にレコードを表示します。

OR演算子は、いずれかの条件がTRUEである場合にレコードを表示します。

デモデータベース

以下は例で使用されるCustomersテーブルからの一部です:

CustomerID CustomerName ContactName Address City PostalCode Country
1 Alfreds Futterkiste Maria Anders Obere Str. 57 Berlin 12209 Germany
2 Ana Trujillo Emparedados y helados Ana Trujillo Avda. de la Constitución 2222 México D.F. 05021 Mexico
3 Antonio Moreno Taquería Antonio Moreno Mataderos 2312 México D.F. 05023 Mexico
4 Around the Horn Thomas Hardy 120 Hanover Sq. London WA1 1DP UK
5 Berglunds snabbköp Christina Berglund Berguvsvägen 8 Luleå S-958 22 Sweden

すべての条件がTRUEである必要がある場合

次のSQL文は、Countryが「Germany」であり、Cityが「Berlin」であり、PostalCodeが12000より大きいCustomersのすべてのフィールドを選択します:

SELECT * FROM Customers
WHERE Country = 'Germany'
AND City = 'Berlin'
AND PostalCode > 12000;

ANDとORの組み合わせ

AND演算子とOR演算子を組み合わせることができます。

次のSQL文は、スペイン出身で名前が「G」または「R」で始まるすべての顧客を選択します。正しい結果を得るためには、括弧を使用してください。

スペイン出身で名前が「G」または「R」で始まるすべての顧客を選択します:

SELECT * FROM Customers
WHERE Country = 'Spain' AND (CustomerName LIKE 'G%' OR CustomerName LIKE 'R%');

括弧を使用しない場合、次のようになります:

次のいずれかに該当するすべての顧客を選択します:

  • スペイン出身で名前が「G」で始まる
  • 名前が「R」で始まる
SELECT * FROM Customers
WHERE Country = 'Spain' AND CustomerName LIKE 'G%' OR CustomerName LIKE 'R%';