Memelihara Kejadian Unik dalam Pemadaman Baris Pendua
Apabila bekerja dengan set data yang besar, kadangkala perlu menghapuskan baris pendua. Walau bagaimanapun, dalam senario tertentu, adalah wajar untuk mengekalkan satu salinan bagi setiap baris pendua. Dalam kes sedemikian, pendekatan disasarkan diperlukan untuk melakukan pemadaman terpilih.
Memahami Masalah
Dalam PostgreSQL, situasi yang diterangkan melibatkan pemadaman semua kecuali satu contoh set daripada baris pendua. Contohnya, jika terdapat lima rekod dengan nilai yang sama, matlamatnya adalah untuk memadam empat daripadanya, meninggalkan satu rekod.
Mencari Penyelesaian
Penjelasan yang komprehensif isu ini disediakan dalam artikel "Mengalih keluar pendua daripada pangkalan data PostgreSQL." Pengarang menangani cabaran khusus untuk menangani sejumlah besar data yang tidak dapat dikumpulkan dengan berkesan.
Penyelesaian Mudah
Artikel mengesyorkan penyelesaian yang mudah:
DELETE FROM foo WHERE id NOT IN (SELECT min(id) --or max(id) FROM foo GROUP BY hash)
Dalam pertanyaan ini, "cincang" mewakili medan atau gabungan medan yang sedang digunakan untuk menentukan pendua. Dengan menggunakan sama ada nilai minimum atau maksimum medan "id" untuk setiap kumpulan pendua, satu contoh boleh dikekalkan.
Pendekatan sasaran ini membolehkan pemadaman baris pendua yang cekap sambil mengekalkan satu salinan untuk rujukan atau analisis.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memadam Baris Pendua dengan Cekap dalam PostgreSQL Semasa Memelihara Satu Contoh?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!