我想知道如何遍历数据库中的每条记录,并使用计数器更新它们。
例如,我有大量的电子邮件字段。我想使用以下模式更新它们:'hello +1@gmail.com','hello +2 @gmail.com','hello +3 @gmail.com','hello+4@gmail.com' ...
我试着在我的Rails控制台中没有SQL的情况下这样做,但这需要花费太多时间。有关如何使用SQL执行此操作的任何建议吗?
答案 0 :(得分:0)
如果您使用的是SQL Server:
select <stuff>
,row_number() over (order by <something>) as row_number
from <things>
where <something>
会做的伎俩。如果没有,请告诉我们你在使用什么,我们可以从那里开始!你想把@ + Row_number放在@之前吗?如果是这样的话,将'@'替换为'+ 4 @'依旧应该是一件相当简单的事情。
答案 1 :(得分:0)
在MySQL中,您将使用变量:
update table t
set email = concat('hello+', @rn := coalesce(@rn, 0) + 1, '@gmail.com');
如果您有特定的排序,可以添加order by
子句。