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 のテーブルから特定の列のすべての一意の値をフェッチしたりできます。