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

MySQLで重複した5つの同じ値から1つの値だけを取得する方法

MySQLで同じ値が複数ある場合に1つだけ選択するには?

MySQLのテーブルに同じ値が何度も登録されている場合、DISTINCTキーワードを使うことで、重複を除外して一意な値だけを取得できます。ここでは、同じ値「10」が5件登録されたテーブルから、1つの値だけを選択する手順を解説します。

1. テーブルを作成する

まず、サンプル用のテーブルを作成します。

mysql> create table DemoTable800 (
   Value int
);
Query OK, 0 rows affected (0.59 sec)

2. 同じ値を5件挿入する

INSERT文を使って、まったく同じ値「10」を5件挿入します。

mysql> insert into DemoTable800 values(10);
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable800 values(10);
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable800 values(10);
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable800 values(10);
Query OK, 1 row affected (0.20 sec)
mysql> insert into DemoTable800 values(10);
Query OK, 1 row affected (0.10 sec)

3. 登録されたレコードを確認する

SELECT文ですべてのレコードを表示してみましょう。

mysql> select *from DemoTable800;

実行結果は以下の通り、同じ「10」が5行表示されます。

+-------+
| Value |
+-------+
| 10    |
| 10    |
| 10    |
| 10    |
| 10    |
+-------+
5 rows in set (0.00 sec)

4. DISTINCTで重複を除外して取得する

5つの同じ値の中から1つの値だけを取得するには、SELECT文にDISTINCTを付けます。

mysql> select distinct Value from DemoTable800;

実行結果を見ると、重複が除外され、値が1行だけ返されていることがわかります。

+-------+
| Value |
+-------+
| 10    |
+-------+
1 row in set (0.00 sec)

まとめ

DISTINCTは、指定したカラムの重複データを自動的に取り除いてくれる便利なキーワードです。同じ値が何件あっても、結果として一意な値のみを返します。なお、複数のカラムに対してDISTINCTを使用した場合は、それらのカラムの組み合わせがすべて一致する行のみが除外される点に注意してください。

  1. MySQLで特定の行から単一の値だけを取得する方法(SELECT INTOの使い方)

    MySQLで特定の条件に一致する行から、単一の値だけを変数に取得したい場合は、SELECT ... INTO 変数構文とWHERE句を組み合わせて使用します。この記事では、実際のテーブル作成から値の取得までの手順を順番に解説します。 1. サンプルテーブルを作成する まずは動作確認用のテーブルを作成しましょう。学生ID・氏名・点数を持つシンプルなテーブルを定義します。 mysql> create table DemoTable1896 ( StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY, StudentName

  2. MySQLで値が「0」の場合に別の列から値を取得する方法

    MySQLで値が「0」の場合に別の列から値を取得する方法MySQLでは、IF()関数を使用することで、特定の列の値が「0」だった場合に、別の列の値を代わりに取得できます。条件分岐を1つのクエリ内で簡単に実現できる便利な関数です。IF()関数の基本構文select IF(yourColumnName1=0,yourColumnName2,yourColumnName1) as anyAliasName from yourTableName;この構文では、最初の列の値が「0」であれば2番目の列の値を返し、「0」以外であれば最初の列の値をそのまま返します。サンプルテーブルの作成まず、動作確認用のテー