首頁  >  文章  >  資料庫  >  如何在 MySQL DELETE 語句中使用 LIMIT 刪除一定範圍的行?

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

Barbara Streisand
Barbara Streisand原創
2024-10-28 04:41:02267瀏覽

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

使用LIMIT 更正MySQL DELETE 語句的語法

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

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

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

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

<code class="sql">DELETE FROM `chat_messages` 
WHERE `id` IN (
    SELECT `id` FROM (
        SELECT `id` FROM `chat_messages`
        ORDER BY `timestamp` DESC
        LIMIT 20, 50
    ) AS `x`
)</code>

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

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

以上是如何在 MySQL DELETE 語句中使用 LIMIT 刪除一定範圍的行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn