Bagaimana Untuk Memadam Semua Catatan Kecuali 15 Terkini dalam MySQL Tanpa Sokongan Subquery 'LIMIT & IN'?

Linda Hamilton
Lepaskan: 2024-11-11 15:44:03
asal
194 orang telah melayarinya

How to Delete All Posts Except the Latest 15 in MySQL Without 'LIMIT & IN' Subquery Support?

Had Subkueri MySQL: Memadam Catatan Tidak Termasuk 15 Terkini

Dalam bidang pengoptimuman pangkalan data, selalunya perlu mengalih keluar data yang berlebihan atau ketinggalan zaman. Soalan ini meneroka cara untuk memadam semua catatan kecuali 15 yang terkini menggunakan subkueri MySQL.

Pertanyaan asal:

DELETE FROM posts WHERE id NOT IN
(SELECT id FROM posts ORDER BY timestamp DESC LIMIT 0, 15)
Salin selepas log masuk

Walau bagaimanapun, pertanyaan ini menghadapi ralat kerana kekurangan sokongan MySQL untuk Subquery 'HAD & DALAM/SEMUA/SEBARANG/SEMANGAT' dalam versi terdahulunya. Untuk menangani isu ini, pertanyaan yang diubah suai boleh digunakan:

DELETE
FROM posts
WHERE id NOT IN (
      SELECT * FROM (
            SELECT id
            FROM posts
            ORDER BY timestamp DESC
            LIMIT 0, 15
      ) 
      AS t);
Salin selepas log masuk

Dalam pertanyaan yang diubah suai ini, subkueri tambahan diperkenalkan sebagai jadual terbitan menggunakan alias 't'. Jadual terbitan ini mengandungi ID bagi 15 siaran terkini, diisih mengikut tertib menurun berdasarkan cap masanya. Pertanyaan utama kemudiannya menggunakan jadual terbitan ini untuk mengecualikan ID khusus tersebut semasa memadamkan siaran.

Dengan menggunakan penyelesaian ini, adalah mungkin untuk mencapai hasil yang diingini untuk memadamkan semua siaran kecuali 15 yang paling terkini dalam versi MySQL yang tidak' t menyokong 'HAD & DALAM/SEMUA/ MANA-MANA/SATU' subkueri. Pendekatan yang disemak ini berkesan mengalih keluar siaran usang sambil mengekalkan yang terkini untuk rujukan selanjutnya.

Atas ialah kandungan terperinci Bagaimana Untuk Memadam Semua Catatan Kecuali 15 Terkini dalam MySQL Tanpa Sokongan Subquery 'LIMIT & IN'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan