Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Memadam Baris dalam MySQL Berdasarkan 15 Rekod Terkini Menggunakan LIMIT dalam Subkueri?

Bagaimana untuk Memadam Baris dalam MySQL Berdasarkan 15 Rekod Terkini Menggunakan LIMIT dalam Subkueri?

Susan Sarandon
Susan Sarandonasal
2024-11-15 11:48:02544semak imbas

How to Delete Rows in MySQL Based on the Latest 15 Records Using LIMIT in a Subquery?

Subkueri mySQL dengan Sekatan LIMIT

Dalam MySQL, cubaan menggunakan klausa LIMIT dalam subkueri yang menggunakan operator IN boleh mencetuskan ralat mesej yang menyatakan bahawa MySQL tidak menyokong fungsi ini. Artikel ini menyediakan penyelesaian kepada isu ini, membolehkan anda memadamkan baris daripada jadual berdasarkan keadaan khusus yang berkaitan dengan 15 rekod terkini dalam jadual.

Untuk mencapai hasil yang diingini, anda boleh menggunakan pertanyaan berikut struktur:

DELETE 
FROM posts 
WHERE id not in (
      SELECT * FROM (
            SELECT id 
            FROM posts 
            ORDER BY timestamp desc 
            limit 0, 15
      ) 
      as t);

Pernyataan DELETE luar menyasarkan jadual siaran untuk pemadaman baris. Operator IN digunakan untuk mengenal pasti baris yang harus dikekalkan, iaitu baris yang terdapat dalam hasil subkueri.

Subkueri memilih medan id daripada jadual siaran, menyusun keputusan dalam tertib menurun mengikut cap masa dan menggunakan klausa LIMIT untuk mendapatkan 15 rekod teratas. Dengan menggunakan alias t, subquery mencipta jadual sementara untuk pemprosesan yang cekap.

Penyelesaian ini secara berkesan menghapuskan pengehadan MySQL dan membolehkan anda melaksanakan operasi yang dimaksudkan untuk memadam semua catatan yang tidak termasuk dalam 15 yang terkini. rekod.

Atas ialah kandungan terperinci Bagaimana untuk Memadam Baris dalam MySQL Berdasarkan 15 Rekod Terkini Menggunakan LIMIT dalam Subkueri?. 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