Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Memilih Baris dengan Cekap dengan Nilai Lajur Bukan Unik dalam Pangkalan Data?
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!