MySQL の DISTINCT

ここでは MySQL の DISTINCT についてご説明します。

サンプルデータベースのテーブルを使いますので、実際にスクリプトを実行してみたい方は、こちら のスクリプトを実行して school_db データベースを作成しておいてください。

MySQL の DISTINCT の使い方

SELECT 文の SELECT に続いて DISTINCT と指定することで、結果セットで値が重複するものを削除し、ユニークなレコードのみを取得することができます。

SELECT 	DISTINCT
        カラム名1,
        カラム名2,
        ...
FROM 	テーブル名

NULL もひとつの値のように扱われ、結果セットに含まれます。


それでは、DISTINCT を使ってデータを取得してみましょう。

次のような students テーブルがあります。

MySQL の DISTINCT 1


students テーブルの gender カラムに保存されている、ユニークな値を取得するには、次のようにできます。

SELECT  DISTINCT
		gender
FROM 	students;

[実行結果]

MySQL の DISTINCT 2

students テーブルの gender カラムには M と F という値が存在していることがわかります。


次は複数のカラムの DISTINCT なレコードを取得してみます。

MySQL の YEAR()関数を使うと、日付の年だけが取得できます。

その関数を使って、students テーブルから、性別と生まれ年のレコード取得すると次のようになります。

SELECT  gender,
        YEAR(birthday) AS birth_year
FROM 	students
ORDER BY gender,
		 birth_year;

MySQL の DISTINCT 3


これに DISTINCT を追加すると重複データが削除され、性別と生まれ年のユニークなレコード取得が取得できます。

SELECT  DISTINCT
		gender,
        YEAR(birthday) AS birth_year
FROM 	students
ORDER BY gender,
		 birth_year;

[実行結果]

MySQL の DISTINCT 4


以上、MySQL の DISTINCT についてご説明しました。

© 2024 MySQL 入門