Memadamkan Baris Pendua daripada Jadual MySQL
Apabila bekerja dengan set data yang besar, adalah penting untuk mengenal pasti dan mengalih keluar rekod pendua. Panduan ini akan menyediakan penyelesaian komprehensif untuk memadamkan baris pendua daripada jadual MySQL bernama "pekerja" yang terdiri daripada tiga medan: empid, empname dan empssn.
Mengenalpasti Rekod Pendua
Untuk mengenal pasti rekod pendua, anda boleh menggunakan pertanyaan berikut:
SELECT COUNT(empssn), empssn FROM employee GROUP BY empssn HAVING COUNT(empssn) > 1
Pertanyaan ini mengembalikan kiraan kejadian untuk setiap empssn unik. Klausa HAVING menapis baris dengan kiraan lebih daripada 1, dengan berkesan mengenal pasti nilai empssn pendua.
Memadam Rekod Pendua
Untuk memadamkan rekod pendua, kita boleh menggunakan pertanyaan berikut:
DELETE FROM employee WHERE (empid, empssn) NOT IN ( SELECT MIN(empid), empssn FROM employee GROUP BY empssn );
Walau bagaimanapun, MySQL melemparkan ralat jika jadual sasaran ("pekerja") dinyatakan dalam kedua-dua DELETE dan klausa FROM subquery. Untuk mengatasinya, kita boleh membungkus subkueri dalam jadual terbitan, seperti berikut:
DELETE FROM employee WHERE (empid, empssn) NOT IN ( SELECT empid, empssn FROM ( SELECT MIN(empid) AS empid, empssn FROM employee GROUP BY empssn ) X );
Pertanyaan yang diubah suai ini secara berkesan memadamkan rekod pendua sambil mengelakkan konflik jadual sasaran. Akibatnya, pangkalan data hanya mengekalkan rekod dengan empid minimum untuk setiap nilai empssn yang unik.
Atas ialah kandungan terperinci Bagaimana untuk Memadam Baris Pendua dari Jadual MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!