ホームページ >データベース >mysql チュートリアル >データベース内で一意でない列値を持つ行を効率的に識別するにはどうすればよいですか?
明確でない列値を持つ行の選択
特定の列値が明確でない行を識別することは、さまざまな方法で行うことができます。この結果を達成するための 2 つのアプローチを検討してみましょう。
方法 1: サブクエリを使用する
このアプローチには、テーブル内に複数回出現する個別の列値を選択することが含まれます。これらの値を含む行は、IN 句を使用して抽出できます。
SELECT [EmailAddress], [CustomerName] FROM [Customers] WHERE [EmailAddress] IN (SELECT [EmailAddress] FROM [Customers] GROUP BY [EmailAddress] HAVING COUNT(*) > 1)
方法 2: EXISTS 演算子を使用する
別の方法は、EXISTS 演算子を利用することです。 、重複した値の存在をチェックします。 subquery:
SELECT [EmailAddress], [CustomerName] FROM [Customers] WHERE EXISTS (SELECT * FROM [Customers] AS T2 WHERE T2.[EmailAddress] = T1.[EmailAddress] AND T2.[CustomerName] <> T1.[CustomerName])
パフォーマンスに関する考慮事項
どちらの方法でも望ましい結果が得られますが、一般にサブクエリのアプローチは EXISTS を使用するより高速です。したがって、大規模なデータセットではパフォーマンスを最適化することをお勧めします。
以上がデータベース内で一意でない列値を持つ行を効率的に識別するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。