ホームページ  >  記事  >  データベース  >  MySQL で DISTINCT を含むすべてのフィールドを選択する方法は?

MySQL で DISTINCT を含むすべてのフィールドを選択する方法は?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-04 08:31:30582ブラウズ

How to Select All Fields with DISTINCT in MySQL?

MySQL クエリで DISTINCT を使用してすべてのフィールドを選択できない

DISTINCT キーワードを使用して重複行を削除しようとすると、ユーザーは次の制限に遭遇する可能性があります。 MySQL クエリ内のすべてのフィールドを選択します。この記事では、この問題に対処し、解決策を示します。

Background

DISTINCT キーワードは、指定された列に基づいて結果セット内の固有の行のみを識別し、返します。 )。ただし、すべて選択ステートメント (*) と組み合わせると、エラーが発生する可能性があります。

temp_tickets テーブルの ticket_id 列のみを選択し、ticket_id で並べ替える次のクエリを考えてみましょう。

mysql_query("SELECT DISTINCT ticket_id FROM temp_tickets ORDER BY ticket_id")

このクエリは正常に実行され、個別の ticket_id 値が返されます。ただし、すべてのフィールドを選択して DISTINCT:

mysql_query("SELECT * , DISTINCT ticket_id FROM temp_tickets ORDER BY ticket_id")

を使用しようとする次のクエリはエラーになります。これは、DISTINCT は単一の列にのみ適用できるためです。

解決策

すべてのフィールドを選択し、DISTINCT を使用して重複を排除するには、クエリを次のように変更します。

SELECT ticket_id, <other_field>, <other_field> FROM temp_tickets GROUP BY ticket_id ORDER BY ticket_id

このクエリでは、GROUP BY 句を DISTINCT と組み合わせて使用​​して、ticket_id 列ごとに結果をグループ化します。一意の ticket_id ごとに、指定されたフィールドの最新の値を含む単一行のみが返されます。

以上がMySQL で DISTINCT を含むすべてのフィールドを選択する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。