Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Memadam Baris Pendua dari Jadual MySQL (Versi 5.0 dan Ke Atas)?

Bagaimana untuk Memadam Baris Pendua dari Jadual MySQL (Versi 5.0 dan Ke Atas)?

Barbara Streisand
Barbara Streisandasal
2024-12-25 20:20:14680semak imbas

How to Delete Duplicate Rows from a MySQL Table (Versions 5.0 and Above)?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn