MySQL で一意の値を選択する

Preet Sanghavi 2022年3月28日
MySQL で一意の値を選択する

このチュートリアルでは、MySQL データベースで一意の値を求める方法を理解することを目的としています。

MySQL は、指定されたテーブルの特定の列からの個別の値または異なる値の総数を求めるのに役立つステートメントを提供します。このステートメントは SELECT DISTINCT です。

これは通常、データベース内のさまざまなユーザーまたは顧客のリストまたは数を求めるために企業や企業によって使用されます。このメソッドの動作を見てみましょう。

ただし、最初に、ダミーのデータセットを作成しましょう。

-- create the table student_details
CREATE TABLE student_details(
	stu_id int,
	stu_firstName varchar(255) DEFAULT NULL,
	stu_lastName varchar(255) DEFAULT NULL,
	primary key(stu_id)
);
-- insert rows to the table student_details
INSERT INTO student_details(stu_id,stu_firstName,stu_lastName) 
 VALUES(1,"Preet","Sanghavi"),
 (2,"Rich","John"),
 (3,"Veron","Brow"),
 (4,"Preet","Jos"),
 (5,"Hash","Shah"),
 (6,"Sachin","Parker"),
 (7,"David","Miller");

MySQL で SELECT DISTINCT を使ってユニークな値を選択する

MySQL の SELECT DISTINCT ステートメントは、特定のテーブルで一意の値をフェッチするのに役立ちます。SELECT DISTINCT ステートメントの基本的な構文は次のとおりです。

SELECT DISTINCT column_name
FROM name_of_the_table;

前述のコードは、重複するエントリがある場合とない場合がある、列 column_name からの個別のエントリを返します。

student_details テーブルからすべての学生を明確な名で取得しましょう。学生の名の値に関連付けられている列は stu_firstName です。

このタスクを実行するには、SELECT DISTINCT を使用してみましょう。次のクエリを使用して、student_details テーブルから異なるまたは一意の名の値を取得できます。

SELECT DISTINCT stu_firstName
FROM student_details;

前述のクエリの出力は次のとおりです。

stu_firstName
Preet
Rich
Veron
Hash
Sachin
David

上記のコードブロックに見られるように、student_details テーブルに追加された 7つの行のうち 6つの一意の名のみがあります。したがって、Preet が列 stu_firstName で 2 回繰り返されるため、出力には 6つの名前しかありません。

一意の値の総数のみを検索する場合は、次の構文を使用できます。

SELECT COUNT(DISTINCT(column_name))
from name_of_the_table

この場合、次のクエリを使用して、stu_firstName 列から学生の一意の名の数を求めることができます。

SELECT COUNT(DISTINCT(stu_firstName)) as total_unique_first_names
from student_details

前述のコードブロックの出力は次のとおりです。

total_unique_first_names
6

したがって、SELECT DISTINCT ステートメントを使用すると、さまざまなエントリの総数を効率的に検索したり、MySQL のテーブルから特定の列のすべての一意の値をフェッチしたりできます。

著者: Preet Sanghavi
Preet Sanghavi avatar Preet Sanghavi avatar

Preet writes his thoughts about programming in a simplified manner to help others learn better. With thorough research, his articles offer descriptive and easy to understand solutions.

LinkedIn GitHub

関連記事 - MySQL Select