首頁 > 資料庫 > mysql教程 > 如何使用 MySQL 的 LIMIT 子句更新特定數量或範圍的行?

如何使用 MySQL 的 LIMIT 子句更新特定數量或範圍的行?

DDD
發布: 2024-12-31 21:56:17
原創
733 人瀏覽過

How Can I Use MySQL's LIMIT Clause to Update a Specific Number or Range of Rows?

MySQL:多行更新的限制子句

在 MySQL 中,LIMIT 子句通常用於限制從一張桌子。但是,它也可以用來指定要更新的最大行數。但是,必須考慮某些約束以防止錯誤。

提供的查詢:

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

失敗,因為 LIMIT 的第二個參數指定偏移量,而不是限制。因此,查詢要求 MySQL 更新第 10 行之後的行(跳過前 5 行,然後套用偏移量 5)。

要解決此問題,請使用以下查詢:

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

此查詢正確更新前 5 行。

如果您希望更新特定範圍的行,例如將第6 行更新為10、您可以使用子查詢:

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。然後,主查詢會相應地更新這些行。

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

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