在MySQL 中使用LIMIT 更新多行
您正在嘗試在MySQL 查詢中使用LIMIT 子句更新特定數量的行,但遇到錯誤。讓我們了解為什麼您的初始查詢可能失敗以及如何修復它。
UPDATE messages set test_read =1 WHERE userid='xyz' ORDER BY date_added DESC LIMIT 5, 5 ;
上面的查詢無效,因為 LIMIT 期望一個正整數表示與結果集開頭的偏移量,然後要更新的行數。在查詢中,您同時指定了偏移量 (5) 和限制 (5),這是不正確的。
要更新從偏移量開始的特定行數,可以使用子查詢來選擇要更新的行,然後更新它們。以下是修改後的查詢:
UPDATE messages SET test_read=1 WHERE id IN ( SELECT id FROM ( SELECT id FROM messages ORDER BY date_added DESC LIMIT 5 ) tmp );
在此查詢中,子查詢用於選擇要更新的行的 ID,從第 5 行開始按 date_added 列的降序排列。然後,主查詢使用 IN 子句僅更新這些特定行。
以上是如何使用 LIMIT 更新 MySQL 中的特定行數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!