Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Memadam Julat Baris Tertentu dalam MySQL Menggunakan Klausa LIMIT?

Bagaimana untuk Memadam Julat Baris Tertentu dalam MySQL Menggunakan Klausa LIMIT?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-25 13:58:30406semak imbas

How to Delete a Specific Range of Rows in MySQL Using LIMIT Clause?

MySQL DELETE Statement with Limit

Seorang pengguna menghadapi ralat semasa cuba memadamkan baris daripada jadual menggunakan pertanyaan berikut:

DELETE FROM `chat_messages` ORDER BY `timestamp` DESC LIMIT 20, 50;

Mesej ralat menunjukkan bahawa sintaks tidak betul.

Penjelasan

Ralat berlaku kerana pernyataan DELETE yang digunakan di sini termasuk offset dalam LIMIT klausa. Ini tidak dibenarkan dalam MySQL. Klausa LIMIT hanya boleh menentukan bilangan baris yang hendak dipadamkan.

Penyelesaian

Untuk memadam julat baris yang ditentukan daripada jadual, anda tidak boleh menggunakan ciri offset dalam klausa LIMIT. Sebaliknya, anda perlu menggunakan subquery untuk memilih baris yang hendak dipadamkan dan kemudian memadamkannya menggunakan nilai kunci utamanya.

Pertanyaan berikut boleh digunakan dalam senario ini:

DELETE FROM `chat_messages`
WHERE `id` IN (
    SELECT `id` FROM (
        SELECT `id` FROM `chat_messages`
        ORDER BY `timestamp` DESC
        LIMIT 20, 50
    ) AS `x`
)

Pertanyaan ini menggunakan sarang berganda untuk memilih baris yang akan dipadamkan dan mengatasi had MySQL.

Atas ialah kandungan terperinci Bagaimana untuk Memadam Julat Baris Tertentu dalam MySQL Menggunakan Klausa LIMIT?. 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