如何将 MySQL 行从第 4 行更新到结果末尾?

时间:2021-08-01 15:01:04

标签: mysql sql sql-update

比如我有n行,我需要从第4行更新到第n行。这里 n 表示查询的最后一行。我知道多行更新会使应用程序崩溃,但就我而言,我确信 1 个用户最多有 40 行。

1 个答案:

答案 0 :(得分:0)

请检查此查询以获取用户明智的更新,其中更新记录从 4 开始。为特定用户 ID 启用 WHERE 子句,否则禁用它。

-- MySQL (v5.8)
UPDATE test tt
INNER JOIN (SELECT id, userid
                 , ROW_NUMBER() OVER (PARTITION BY userid order by id) row_num
            FROM test
            -- WHERE userid = 1 
           ) t
ON tt.id = t.id
AND t.row_num >= 4
SET tt.amount = tt.amount + 10;

请检查网址 https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=e0cda11163a44f7a2b82e31c6d13ed8d