首頁 > 資料庫 > mysql教程 > 如何使用 LIMIT 正確更新 MySQL 中特定範圍的行?

如何使用 LIMIT 正確更新 MySQL 中特定範圍的行?

Patricia Arquette
發布: 2024-12-31 12:03:08
原創
359 人瀏覽過

How to Correctly Update a Specific Range of Rows in MySQL Using LIMIT?

MySQL:使用 LIMIT 更新多行

在 MySQL 中,LIMIT 子句可讓您限制查詢影響的行數。但是,當 LIMIT 與 UPDATE 語句一起使用時,嘗試更新特定範圍的行時會出現常見錯誤。

考慮以下查詢:

UPDATE messages SET test_read=1 
WHERE userid='xyz' 
ORDER BY date_added DESC  
LIMIT 5, 5;
登入後複製

此查詢旨在更新 5 個行行,從「messages」表中的第五行開始,其中「userid」等於「xyz」。但是,此查詢將導致錯誤。

要理解原因,請務必注意此上下文中的 LIMIT 子句定義了偏移量和最大行數。在此範例中,它會檢索並限制顯示的行數,而不是更新它們。要更新特定範圍的行,可以使用子查詢:

UPDATE messages SET test_read=1
WHERE id IN (
    SELECT id FROM (
        SELECT id FROM messages 
        ORDER BY date_added DESC  
        LIMIT 5, 5
    ) tmp
);
登入後複製

在這個修改後的查詢中,子查詢用於選擇需要更新的五行的 ID。然後,主 UPDATE 語句會比對這些 ID 並執行更新。這可確保僅修改所需的行。

以上是如何使用 LIMIT 正確更新 MySQL 中特定範圍的行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板