ホームページ >データベース >mysql チュートリアル >データベース内で一意でない列値を持つ行を効率的に選択するにはどうすればよいですか?

データベース内で一意でない列値を持つ行を効率的に選択するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-22 14:53:11455ブラウズ

How Can I Efficiently Select Rows with Non-Unique Column Values in a Database?

明確でない列値を持つ行の選択

データを操作する場合、特定の列値が存在しない行を取得する必要がある場合があります。明確な。たとえば、電子メール アドレスを含むテーブルでは、異なる顧客レコード間で重複する電子メール アドレスを識別すると便利な場合があります。

提供されたクエリでは、GROUP BY 句と HAVING 句を使用して、電子メール アドレスごとに行をグループ化し、発生している行を識別します。複数回。ただし、パフォーマンスの問題があることが報告されています。

別のアプローチは、IN 句とサブクエリを組み合わせて使用​​することです。このメソッドは、Customers テーブルから複数回出現する電子メール アドレスを選択します。

SELECT [EmailAddress], [CustomerName] 
FROM [Customers] 
WHERE [EmailAddress] IN
  (SELECT [EmailAddress] 
   FROM [Customers] 
   GROUP BY [EmailAddress] 
   HAVING COUNT(*) > 1)

このクエリのパフォーマンスは、一般に、GROUP BY 句や HAVING 句を使用するよりも高速であり、効果的に重複した電子メール アドレスを含む行が返されます。

以上がデータベース内で一意でない列値を持つ行を効率的に選択するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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