Lewahan data dalam pangkalan data boleh membawa kepada ketidaktepatan dan ketidakcekapan. Oleh itu, adalah penting untuk mengalih keluar rekod pendua untuk mengekalkan integriti data. Walaupun mencipta jadual baharu dengan hanya entri yang berbeza ialah pilihan, kami akan meneroka pendekatan langsung untuk memadamkan entri pendua daripada jadual sedia ada tanpa membuat yang baharu.
Pertimbangkan jadual dengan medan seperti id, tindakan, dan L11_data. id adalah unik untuk setiap baris, L11_data adalah unik dalam medan tindakan masing-masing dan tindakan mewakili industri. Matlamatnya adalah untuk mengalih keluar nama syarikat pendua dalam L11_data untuk industri masing-masing.
Untuk mencapai matlamat ini, kami boleh menggunakan medan ID unik untuk mengenal pasti dan mengalih keluar baris pendua. Pertanyaan berikut dengan cekap menghapuskan rekod berlebihan tanpa membuat jadual baharu:
DELETE FROM Table WHERE ID NOT IN ( SELECT MIN(ID) FROM Table GROUP BY Field1, Field2, Field3, ... )
Dalam pertanyaan ini, Jadual mewakili jadual sedia ada dan ID ialah medan pengecam unik. Senarai medan yang dinyatakan dalam GROUP BY termasuk semua medan kecuali untuk ID.
Adalah penting untuk ambil perhatian bahawa kecekapan pertanyaan ini bergantung pada bilangan medan dan baris dalam jadual. Walau bagaimanapun, untuk kebanyakan senario praktikal, ia harus berprestasi secukupnya.
Selain itu, jika anda tidak mempunyai indeks unik pada jadual, adalah sangat disyorkan untuk menambah satu. Ini bukan sahaja meningkatkan integriti data, tetapi ia juga membolehkan anda melaksanakan pertanyaan yang dinyatakan di atas dengan cekap.
Atas ialah kandungan terperinci Bagaimana untuk Memadam Baris Pendua dengan Cekap dari Jadual Tanpa Membuat Baris Baharu?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!