Memadam Pendua daripada Jadual MySQL
Dalam MySQL, anda mungkin menghadapi senario di mana anda perlu mengalih keluar baris pendua daripada jadual sambil memastikan pengenalan unik melalui lajur ID. Walaupun pertanyaan yang diberikan adalah sah untuk MySQL 5.7 dan ke atas, ia tidak berfungsi dalam versi terdahulu seperti 5.0.
Untuk mencapai tingkah laku yang diingini dalam MySQL 5.0, anda boleh menulis semula pertanyaan menggunakan operator IN dan bukannya = untuk membandingkan ID dengan set hasil subquery. Selain itu, anda tidak boleh mengubah suai terus jadual daripada subkueri dalam pertanyaan yang sama.
Untuk menyelesaikan pengehadan ini, anda boleh sama ada melaksanakan pertanyaan SELECT dan DELETE yang berasingan atau menggunakan subkueri bersarang untuk alias hasil subkueri dalam. Berikut ialah contoh pendekatan subkueri bersarang:
DELETE FROM posts WHERE id IN ( SELECT * FROM ( SELECT id FROM posts GROUP BY id HAVING ( COUNT(id) > 1 ) ) AS p )
Sebagai alternatif, seperti yang dicadangkan oleh Mchl, anda boleh menggunakan gabungan untuk memadamkan baris pendua dengan menggabungkan jadual dengan dirinya sendiri berdasarkan lajur ID dan menggunakan klausa HAVING untuk penapis untuk ID pendua.
Atas ialah kandungan terperinci Bagaimana untuk Memadam Baris Pendua dari Jadual MySQL (Versi 5.0 dan Ke Atas)?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!