1. 一意のデータの行全体をクエリする
MySQL では、DISTINCT キーワードまたは GROUP BY 句を使用して一意のデータをクエリできます。キーワードはデータの行全体に作用し、GROUP BY 句はデータの各列をグループ化して結果を返します。
DISTINCT キーワードを使用します
DISTINCT キーワードを使用して、重複するデータ行全体を除外します。構文は次のとおりです:
SELECT DISTINCT column1, column2, ... FROM table_name;
そのうち、column1、column2、... は、一意のデータをフィルタリングする必要がある列名を表します。1 つ以上の列を指定し、複数の列をカンマで区切ることができます。
たとえば、次のような学生テーブル (students) があります:
id | name | age | 性別 |
---|---|---|---|
张三 | 20 | 男 | |
李四 | 21 | 男性 | |
王呉 | 20 | 女 | |
趙劉 | 22 | 女性 | |
Qian Qi | 21 | 男性 | |
Sunba | 20 | 女 |
SELECT DISTINCT * FROM students;
name | age | 性別 | |
---|---|---|---|
张三 | 20 | 男性 | |
李4 | 21 | 男性 | |
王五 | 20 | 女 | |
赵六 | #22 | 女 | |
銭琦 | 21 | 男性 | |
Sun Ba | 20 | 女 |
GROUP BY 句の構文は次のとおりです。
SELECT column1, column2, ... FROM table_name GROUP BY column1, column2, ...;
たとえば、学生の年齢と性別に基づいて一意のデータをクエリする必要がある場合は、次の SQL ステートメントを使用できます。 :
SELECT age, gender FROM students GROUP BY age, gender;
実行結果は以下の通りです:
性別 | |
---|---|
20 | |
21 | |
22 | |
2. 重複しない部分データのクエリ
場合によっては、行全体の重複しないデータのクエリに加えて、非重複データのクエリも必要になることがあります。 - 特定の列のデータが重複します。この場合、サブクエリまたは GROUP BY 句を使用できます。
サブクエリを使用するSELECT age FROM students WHERE age IN (SELECT DISTINCT age FROM students);
21 |
22 |
ご覧のとおり、サブクエリを使用すると、特定の列の一意のデータをフィルターし、必要な結果を返すことができます。 |
GROUP BY 句を使用する
GROUP BY 句を使用して、一部の列をクエリするときに重複データを削除します。一意のデータをフィルタリングするには、クエリで対応する列を指定し、その列を GROUP BY 句のパラメータとして使用するだけです。
SELECT gender FROM students GROUP BY gender;
実行結果は次のとおりです:
## ######## ##性別女性男性######## # ご覧のとおり、GROUP BY 句を使用すると、一部の列で重複しないデータをクエリする機能も実現できます。以上がMySQL で固有のデータをクエリする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。