MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLのIN()関数で列名を指定し、リストの値と比較して該当行を抽出する方法

このシナリオでは、列の名前を「式(Expression)」としてIN()関数に指定し、その列の値をリスト内の値と比較します。列の値がリスト内のいずれかの値と一致した場合、その行が出力として返されます。

理解を深めるために、以下のデータを持つ「Employee」テーブルを例に見てみましょう。

mysql> Select * from Employee;
+----+--------+--------+
| ID | Name   | Salary |
+----+--------+--------+
| 1  | Gaurav | 50000  |
| 2  | Rahul  | 20000  |
| 3  | Advik  | 25000  |
| 4  | Aarav  | 65000  |
| 5  | Ram    | 20000  |
| 6  | Mohan  | 30000  |
+----+--------+--------+
6 rows in set (0.00 sec)

それでは、「ID」列をIN()関数に指定してクエリを実行してみます。

mysql> Select * from Employee WHERE ID IN(6,2,3,20,10,9);
+----+-------+--------+
| ID | Name  | Salary |
+----+-------+--------+
| 2  | Rahul | 20000  |
| 3  | Advik | 25000  |
| 6  | Mohan | 30000  |
+----+-------+--------+
3 rows in set (0.00 sec)

上記の結果セットからわかるように、IN()関数は「ID」列の値をリスト内の値(6, 2, 3, 20, 10, 9)と照合し、一致した行だけを出力として返しています。リストに含まれていないID(1, 4, 5)の行は結果に表示されず、リスト内に存在してもテーブルに該当する行がない値(20, 10, 9)は単に無視されます。

このように、IN()関数に列名を指定することで、複数の値に一致するレコードをOR条件を羅列することなく簡潔に抽出できるため、WHERE句での複数条件指定を効率化したい場合に非常に便利です。

  1. JavaでResultSetから列名を取得する方法!MySQLを使ったgetMetaData()の実装例を解説

    ResultSetから列名を取得するには?getMetaData()メソッドの基本JavaでJDBCを使ってデータベース操作を行っていると、「検索結果(ResultSet)に含まれる列名(カラム名)を動的に知りたい」という場面によく出会います。そんなときに活躍するのが、getMetaData()メソッドです。このメソッドを呼び出すと、結果セットの構造情報(列の数や名前、型など)を持つResultSetMetaDataオブジェクトを取得できます。プロトタイプ宣言は以下のとおりです。ResultSetMetaData getMetaData() throws SQLException;サンプル用テ

  2. MySQLのMAX()集計関数で列の最大値を取得する方法

    MySQLでは、列の最大値を取得するために、あらかじめ用意されている集計関数 MAX() を使用できます。この記事では、実際にテーブルを作成し、データを挿入して、MAX()関数で最大値を取得する手順を具体的に解説します。1. テーブルの作成まず、サンプルとなるテーブルを作成します。mysql> create table DemoTable ( Id int ); Query OK, 0 rows affected (0.96 sec)2. レコードの挿入次に、INSERTコマンドを使ってテーブルにいくつかのレコードを挿入します。mysql> insert into Demo