ホームページ  >  記事  >  php教程  >  SQL での Different の使用法 (4 つの例の分析)

SQL での Different の使用法 (4 つの例の分析)

高洛峰
高洛峰オリジナル
2016-12-13 09:31:292242ブラウズ

mysql を使用する場合、特定のフィールドで一意のレコードをクエリする必要がある場合があります。mysql には重複する重複レコードを除外して 1 つだけを保持するための unique キーワードが用意されていますが、多くの場合、これは一意のレコードの数を返すためにのみ使用されます。それを使用して重複レコードなしですべての値を返す方法。その理由は、distinct はターゲット フィールドのみを返すことができ、他のフィールドを返すことができないためです。この問題は、distinct で解決できない場合は、二重ループ クエリで解決するしかありません。これは非常に困難です。ウェブサイトの場合、間違いなく効率に直接影響するため、多くの時間を無駄にしました。

テーブルには重複する値が存在する可能性があります。これは問題ではありませんが、単に個別の値をリストしたい場合もあります。キーワード unique は、一意に異なる値を返すために使用されます。

表 A:

SQL での Different の使用法 (4 つの例の分析)

例 1

select distinct name from A

実行後の結果は次のとおりです:

SQL での Different の使用法 (4 つの例の分析)

例 2

select distinct name, id from A

実行後の結果は次のとおりです:

SQL での Different の使用法 (4 つの例の分析)

実際には、それ"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 を使用して直接取得することはできません。


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