MySQLのIN句を使って選択した複数行を表示する方法
MySQLのIN句で選択した複数行を表示する方法
MySQLでは、IN句にタプル(行の組み合わせ)を指定することで、複数の条件に一致する行を一度に取得できます。本記事では、IdとFirstNameという2つのカラムを組み合わせた条件で、特定の複数行だけを抽出して表示する手順を解説します。
1. テーブルを作成する
まず、サンプル用のテーブルを作成しましょう。
mysql> create table DemoTable1045 ( Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, FirstName varchar(100) )AUTO_INCREMENT=100; Query OK, 0 rows affected (0.62 sec)
AUTO_INCREMENT=100 を指定しているため、Idは100から順番に採番されます。
2. レコードを挿入する
続いて、INSERTコマンドを使ってテーブルにレコードを追加します。
mysql> insert into DemoTable1045(FirstName) values('John');
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable1045(FirstName) values('Chris');
Query OK, 1 row affected (0.27 sec)
mysql> insert into DemoTable1045(FirstName) values('Robert');
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable1045(FirstName) values('Mike');
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable1045(FirstName) values('Adam');
Query OK, 1 row affected (0.08 sec)3. 全レコードを確認する
SELECT文でテーブル内のすべてのレコードを表示してみます。
mysql> select *from DemoTable1045;
実行すると、以下のような出力が得られます。
+-----+-----------+ | Id | FirstName | +-----+-----------+ | 100 | John | | 101 | Chris | | 102 | Robert | | 103 | Mike | | 104 | Adam | +-----+-----------+ 5 rows in set (0.00 sec)
4. IN句で複数の選択行を表示する
ここが本題です。IN句を使って、選択した複数の行だけを表示するMySQLクエリは以下の通りです。ポイントは、WHERE句で (カラム1, カラム2) の形式によるタプル比較を行い、INの後に (値1, 値2) のペアをカンマ区切りで列挙する点です。
mysql> select *from DemoTable1045 tbl where(tbl.Id, tbl.FirstName) IN ((101, 'Chris'), (102, 'Robert'), (104,'Adam'));
このクエリを実行すると、指定した3行のみが出力されます。
+-----+-----------+ | Id | FirstName | +-----+-----------+ | 101 | Chris | | 102 | Robert | | 104 | Adam | +-----+-----------+ 3 rows in set (0.05 sec)
まとめ
このように、IN句にタプルを渡すことで、単一カラムの条件にとどまらず、複数カラムの組み合わせに一致する行を効率的に抽出できます。「特定のIDと名前のセット」のように複合条件で絞り込みたい場合に非常に便利なテクニックなので、ぜひ活用してください。
-
MySQLで選択した行のサイズを取得する方法|CHAR_LENGTH()関数の使い方
MySQLで選択した行のサイズを取得する方法MySQLで選択した行のサイズ(文字数)を取得するには、CHAR_LENGTH()関数を使用します。この関数は文字列の長さを返すため、SUM()関数と組み合わせることで、複数行にわたる合計サイズを簡単に算出できます。ここでは、実際にテーブルを作成しながら手順を詳しく解説していきます。ステップ1:テーブルを作成するまず、サンプル用のテーブルを作成しましょう。mysql> create table DemoTable1612 -> ( -> Fi
-
Javaを使用してMySQLテーブルの値を表示する方法
MySQLデータベースのテーブル値をJavaで表示するには、ResultSetの概念を利用します。データベースへの接続には、MySQL JDBCドライバーを使用します。テーブルの作成まず、サンプル用のテーブルを作成しましょう。mysql> create table demo87 -> ( -> name varchar(20), -> age int -> )