mysql を使用する場合、特定のフィールドで一意のレコードをクエリする必要がある場合があります。mysql には重複する重複レコードを除外して 1 つだけを保持するための unique キーワードが用意されていますが、多くの場合、これは一意のレコードの数を返すためにのみ使用されます。それを使用して重複レコードなしですべての値を返す方法。その理由は、distinct はターゲット フィールドのみを返すことができ、他のフィールドを返すことができないためです。この問題は、distinct で解決できない場合は、二重ループ クエリで解決するしかありません。これは非常に困難です。ウェブサイトの場合、間違いなく効率に直接影響するため、多くの時間を無駄にしました。
テーブルには重複する値が存在する可能性があります。これは問題ではありませんが、単に個別の値をリストしたい場合もあります。キーワード unique は、一意に異なる値を返すために使用されます。
表 A:
例 1
select distinct name from A
実行後の結果は次のとおりです:
例 2
select distinct name, id from A
実行後の結果は次のとおりです:
実際には、それ"name+id" に基づいています。重複を削除するには、distinct が名前と ID の両方に作用します。このメソッドは、Access と SQL Server で同時にサポートされています。
例 3: 統計
select count(distinct name) from A; --表中name去重后的数目, SQL Server支持,而Access不支持 select count(distinct name, id) from A; --SQL Server和Access都不支持
例 4
select id, distinct name from A; --会提示错误,因为distinct必须放在开头
その他
distinct ステートメントの select ステートメントに表示されるフィールドは、distinct で指定されたフィールドのみであり、他のフィールドは使用できません。たとえば、テーブル A に「備考」列がある場合、distinct 名と対応する「備考」フィールドを取得したい場合、distinct を使用して直接取得することはできません。