更正帶有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