MySQL の DISTINCT の微妙さ
MySQL の DISTINCT キーワードを使用して一意の行を取得する際、ユーザーがすべてのフィールドを選択しようとすると制限に遭遇する可能性があります。この動作を理解するために、DISTINCT の仕組みを詳しく見てみましょう。
DISTINCT は、指定された列の一意性に基づいて重複行を削除します。ただし、特定の列のみに選択的に適用することはできません。代わりに、クエリ全体を変更し、select-list 内のすべての列が一意であることを確認します。
たとえば、次のクエリは、ticket_id 列の個別の値を正常に取得します。 、重複する行は除きます。ただし、クエリ:
<code class="mysql">SELECT DISTINCT ticket_id FROM temp_tickets ORDER BY ticket_id</code>
は、DISTINCT が SELECT の直後に続く必要があり、列名の後に配置できないため、エラーになります。
<code class="mysql">SELECT * , DISTINCT ticket_id FROM temp_tickets ORDER BY ticket_id</code>
このクエリは、テーブル内のすべての列に基づいて個別の行を返し、効果的に重複を削除します。
<code class="mysql">SELECT DISTINCT * FROM temp_tickets ORDER BY ticket_id</code>
以上がすべての列を選択する場合、MySQL で DISTINCT はどのように機能しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。