HOWTO · MySQL
MySQL で WHERE を使用して複数の値を選択する
この記事では、SQL クエリでの WHERE 句の使用について説明します。 さらに、WHERE 句を使用して複数の値を選択するさまざまな方法についても説明します。
このページの内容
この記事では、MySQL クエリを使用して、特定の基準を満たす特定のテーブルまたはリレーションからデータを取得する方法について説明します。 このために、WHERE 句が SQL クエリで使用されます。
SQL クエリの WHERE 句
WHERE 句は、単一のテーブルからデータを取得するか、複数のテーブルを結合するための基準を指定します。 指定された条件が満たされた場合、クエリはテーブルから対応する値を返します。
WHERE 句を使用してレコードを制限し、必要なものだけを取得できます。
WHERE 句は、SELECT ステートメントだけでなく、UPDATE、DELETE などのステートメントでも使用されます。
WHERE 句の構文
SQL では、WHERE 句に次の構文を使用して、特定の条件に基づいてレコードをフィルター処理します。
SELECT column1, column2, ...
FROM table_name
WHERE [condition];
条件は、異なる関係 (<、>、<=、>=、==、!=) または論理 (AND、OR、) を使用して作成できます。 NOT) 演算子。
組織の従業員のデータを保存する Employees テーブルがあるとします。 テーブル データは次のとおりです。
上の表は、Employees テーブルの 6 人の従業員のデータを示しています。 年齢が 40 歳以上の従業員を選択する必要があると仮定すると、次のクエリを使用します。
SELECT * from Employees
WHERE Emp_Age > 40
出力:
WHERE 句で関係演算子を使用していることに注意してください。 同様に、WHERE 句で論理演算子と関係演算子を使用できます。
MySQL で WHERE 句を使用して複数の条件に基づいてレコードを選択する
複数の条件に基づいてテーブルからレコードをフィルタリングすることもできます。 このために、条件に基づいて AND や OR などの論理演算子を使用できます。
たとえば、40 歳未満で給与が $3000 を超える従業員の名前と給与を取得する必要があります。 この条件のクエリは次のようになります。
SELECT Emp_Name, Emp_Salary FROM `Employees`
WHERE Emp_Age < 40 AND Emp_Salary > 3000
このクエリの結果は次のようになります。
結果から、クエリで指定された両方の条件を満たす従業員のみが選択されていることがわかります。 条件のいずれかを満たす必要がある場合は、次のように、AND 演算子の代わりに OR 演算子を使用できます。
SELECT Emp_Name, Emp_Salary FROM `Employees`
WHERE Emp_Age < 40 OR Emp_Salary > 3000
結果セットは次のようになります。
結果には、前の結果よりも多くの行が含まれていることがわかります。 これは、すべての従業員の年齢が 40 歳未満であるか、給与が $3000 を超えているためです。
IN 演算子を使用しても同じ結果が得られます。 IN 演算子は OR 演算子と同じように機能しますが、クエリの構造がより優れています。
SELECT Emp_ID,Emp_Name, Emp_Age FROM `Employees`
WHERE Emp_Name IN ("John","David")
結果セットは次のようになります。
SQL クエリでは、テーブルから複数の値を選択する方法が複数あります。 ニーズと必要なデータ出力に基づいて、それらのいずれかを選択できます。