MySQLのきほん「重複の除去」

スポンサーリンク
MySQL

テーブルから特定のフィールドだけを取り出した場合、レコードの内容が重複することがある。
多くの場合、重複は取り除いて、一意なレコードだけにまとめたいことがほとんどである。

今回は、SELECT命令で取り出したレコードから重複行を取り除く、DISTINCTというキーワードをご紹介しよう。

まずは、mysqlクライアントを起動しよう。

PS C:\Users\vinta> mysql -u root -p
Enter password: *****

続いて、basicデータベースに移動しよう。

USE basic;
Database changed

レコードを抽出する(重複あり)

scheduleテーブルに登録しているuidフィールドの一覧を表示しよう。
以下の通り入力しよう。

SELECT uid FROM schedule;

下記の通り、scheduleテーブルに登録しているuidフィールドの一覧が表示される。

mysql> SELECT uid FROM schedule;
+---------+
| uid     |
+---------+
| yyamada |
| tsato   |
| yyamada |
| yyamada |
| nkaneya |
| nkaneya |
| ssuzuki |
+---------+
7 rows in set (0.00 sec)

レコードを抽出する(重複なし)

mysql> SELECT DISTINCT uid FROM schedule;

以下の通り表示される。

mysql> SELECT DISTINCT uid FROM schedule;
+---------+
| uid     |
+---------+
| yyamada |
| tsato   |
| nkaneya |
| ssuzuki |
+---------+
4 rows in set (0.01 sec)

レコードを抽出する(複数列)

scheduleテーブルに登録しているuidフィールドとuidフィールドの一覧を重複なしで表示しよう。
以下の通り入力しよう。

mysql> SELECT DISTINCT uid,cid FROM schedule;

以下の通り表示される。

mysql> SELECT DISTINCT uid,cid FROM schedule;
+---------+------+
| uid     | cid  |
+---------+------+
| yyamada |    1 |
| tsato   |    3 |
| nkaneya |    2 |
| ssuzuki |    2 |
+---------+------+
4 rows in set (0.00 sec)

レコードを抽出する(ALLキーワード)

scheduleテーブルに登録しているuidフィールドの一覧を表示しよう。
以下の通り入力しよう。

mysql> SELECT ALL uid FROM schedule;

以下の通り表示される。

mysql> SELECT ALL uid FROM schedule;
+---------+
| uid     |
+---------+
| yyamada |
| tsato   |
| yyamada |
| yyamada |
| nkaneya |
| nkaneya |
| ssuzuki |
+---------+
7 rows in set (0.00 sec)

今回は、ここまでである。mysqlクライアントを終了しよう。

mysql> exit
Bye
PS C:\Users\vinta>

参考)3ステップでしっかり学ぶ MySQL入門 [改訂第3版]  山田奈美(著)山田祥寛(監修)技術評論社

コメント

タイトルとURLをコピーしました