MySQL で 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 クエリでは、テーブルから複数の値を選択する方法が複数あります。 ニーズと必要なデータ出力に基づいて、それらのいずれかを選択できます。
Husnain is a professional Software Engineer and a researcher who loves to learn, build, write, and teach. Having worked various jobs in the IT industry, he especially enjoys finding ways to express complex ideas in simple ways through his content. In his free time, Husnain unwinds by thinking about tech fiction to solve problems around him.
LinkedIn