Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Memilih Baris dengan Cekap dengan Nilai Lajur Bukan Unik dalam Pangkalan Data?

Bagaimanakah Saya Boleh Memilih Baris dengan Cekap dengan Nilai Lajur Bukan Unik dalam Pangkalan Data?

Barbara Streisand
Barbara Streisandasal
2024-12-22 14:53:11453semak imbas

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

Memilih Baris dengan Nilai Lajur Tidak Berbeza

Apabila bekerja dengan data, mungkin perlu untuk mendapatkan semula baris yang tidak mempunyai nilai lajur tertentu tersendiri. Contohnya, dalam jadual yang mengandungi alamat e-mel, mungkin berguna untuk mengenal pasti alamat e-mel pendua merentas rekod pelanggan yang berbeza.

Pertanyaan yang disediakan menggunakan klausa GROUP BY dan HAVING untuk mengumpulkan baris mengikut alamat e-mel dan mengenal pasti perkara yang berlaku lebih daripada sekali. Walau bagaimanapun, ia telah dilaporkan mempunyai masalah prestasi.

Pendekatan alternatif ialah menggunakan klausa IN digabungkan dengan subkueri. Kaedah ini memilih alamat e-mel daripada jadual Pelanggan yang muncul lebih daripada sekali:

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

Prestasi pertanyaan ini biasanya lebih pantas daripada menggunakan klausa GROUP BY dan HAVING dan sepatutnya mengembalikan baris dengan alamat e-mel pendua dengan berkesan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memilih Baris dengan Cekap dengan Nilai Lajur Bukan Unik dalam Pangkalan Data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn