2016-02-22 16 views
-1

我正在執行SQL更新將更新具有日期的特定行數,然後移動到下一個組和日期。MySQL更新x行與相同的日期,然後移動到下一個日期

例如,假設我在subscriptions表中有4000行。我需要在suspended_on字段中使用今天的日期填充前100行,然後使用明天填充接下來的100行,以及接下來的第100天,直到suspended_on字段中沒有更多行。

不知道從哪裏開始,對不起......

+1

或至少與相關的表結構和樣品的輸入提供,輸出。謝謝 – 1000111

+0

我會建議在參數中使用row_number,所以每一行都有種類的排序,然後爲更新添加一個查找表,包含兩列,ID_RANGE(1-99代表1,100-199代表2)和UpdatedDate與日期需要更新。然後加入他們並更新。 – sagi

+0

你能澄清哪個RDBMS? – Strawberry

回答

1

的第一行1000

UPDATE subscriptions a 
LEFT JOIN (
    SELECT ID,@row := @row+1 row_num 
    FROM subscriptions, (SELECT @row :=0) vars order by ID 
) b on a.ID = b.ID set a.suspended_on = '02/22/2014' 
WHERE @row <= 1000 
ORDER BY ID 

下一個1000個記錄

UPDATE subscriptions a 
LEFT JOIN (
    SELECT ID,@row := @row+1 row_num 
    FROM subscriptions, (SELECT @row :=0) vars order by ID 
) b on a.ID = b.ID set a.suspended_on = '02/23/2014' 
WHERE @row BETWEEN 1000 AND 2000 
ORDER BY ID 
相關問題