1

我想在 MySQL 中编写一个存储过程,它使用 where 条件获取帐户,将其除以 10 并根据结果更新行数。

例如,如果帐户总数为 100,我将锁定 100/10 = 10 条记录并更新它们。

我是新手。任何的意见都将会有帮助。

谢谢

4

1 回答 1

2

我建议进行两步过程。

     select @rowcount := count(1) from account;

然后用于LIMIT设置要更新的行的限制:

     UPDATE account
     SET column1 = desiredvalue
     LIMIT @rowcount/10;

希望这可以帮助。

编辑:

     select @rowcount := ROUND(count(1)/10) from account;
     UPDATE account
     SET column1 = desiredvalue
     LIMIT @rowcount;

或者

     DECLARE rowcount INTEGER;
     SELECT ROUND(count(1)/10) INTO rowcount from account; 
     UPDATE account
     SET column1 = desiredvalue
     LIMIT rowcount;  
于 2012-10-27T23:06:32.083 回答