Memadam Baris Bukan Unik dalam MySQL Menggunakan Penyata Pilih
Sintaks pertanyaan yang disediakan
DELETE FROM posts where> cuba untuk padamkan baris yang tidak mempunyai ID unik daripada jadual siaran. Walau bagaimanapun, sintaks ini tidak serasi dengan MySQL 5.0.</p> <p><strong>Menulis Semula Pertanyaan</strong></p> <p>Untuk menjadikan pertanyaan serasi dengan MySQL 5.0, ia hendaklah ditulis semula seperti berikut:</p> <p>`<pra>PADAM DARI catatan DI MANA id DALAM (</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">SELECT id FROM posts GROUP BY id HAVING ( COUNT(id) > 1 )
)
`
Memahami Pertanyaan Semakan
Pertanyaan yang disemak menggunakan operator IN untuk bandingkan lajur id jadual siaran dengan set hasil subkueri. Subkueri mendapatkan semula ID baris yang mempunyai lebih daripada satu kejadian dalam jadual siaran, menunjukkan ID bukan unik. Dengan menggunakan operator IN, pertanyaan hanya memilih baris dengan ID bukan unik untuk dipadamkan.
Pertimbangan Tambahan
Seperti yang dinyatakan dalam rujukan jawapan, adalah penting untuk ambil perhatian bahawa MySQL tidak membenarkan mengubah suai jadual yang sama daripada subkueri dalam pertanyaan yang sama. Untuk memintas sekatan ini, pertanyaan boleh dibahagikan kepada dua pertanyaan berasingan: pertanyaan SELECT untuk mengenal pasti baris yang akan dipadamkan, diikuti dengan pertanyaan DELETE untuk melaksanakan pemadaman. Sebagai alternatif, subkueri bersarang dengan alias boleh digunakan untuk membenarkan pemadaman dalam satu pertanyaan.
Atas ialah kandungan terperinci Bagaimana untuk Memadam Baris Bukan Unik dengan Cekap dalam MySQL 5.0?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!