」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何在 MySQL DELETE 語句中使用 LIMIT 刪除一定範圍的行?

如何在 MySQL DELETE 語句中使用 LIMIT 刪除一定範圍的行?

發佈於2024-11-09
瀏覽:100

How to Delete a Range of Rows Using LIMIT in MySQL DELETE Statement?

更正帶有LIMIT 的MySQL DELETE 語句的語法

嘗試使用帶有LIMIT 的DELETE 語句從MySQL時LIMIT 子句,如果語法不正確,您可能會遇到錯誤。此錯誤通常表示用於指定限制的語法有問題。

所提供的查詢中的問題是您無法在 DELETE 語句的 LIMIT 子句中指定偏移量。在 DELETE 語句中使用 LIMIT 子句的語法是 LIMIT ,不指定偏移量或起始點。

要解決此問題,您需要重寫查詢以指定要刪除的行更準確地說。執行此操作的一種方法是使用 IN 子句選擇要刪除的行的 ID,然後使用這些 ID 來篩選 DELETE 語句中的行。

以下是如何重寫的範例您的查詢:

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

在此查詢中,我們首先使用子查詢來選擇要刪除的行的 ID。然後,我們在主 DELETE 語句中使用 IN 子句根據這些 ID 過濾行,從而刪除所需範圍的行。

需要注意的是,您可能需要對基於表格的特定結構和所需行為的查詢。

最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3