Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Memadam Baris dalam MySQL Berdasarkan 15 Rekod Terkini Menggunakan LIMIT dalam Subkueri?
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!