2011-12-18 96 views
1

内连续编号,我发现更新与连续的数字表在这里行的技术:更新SQL与一群

Update SQL with consecutive numbering

该技术的要点是使用(T-SQL):

update myTable 
SET @myvar = myField = @myVar + 1 

这是真棒,工作得很好。

此技术是否可以扩展为对不同组的记录进行编号,每组以1开头?例如

  • 类别1行应该得到一个序列号1,2,3,...
  • 类别2行也应该得到一个序列号1,2,3,...
+5

有[你想要的答案](http://stackoverflow.com/a/1168075/11683)在您链接到的问题。看到最后一个**编辑**。 – GSerg 2011-12-18 11:35:20

+0

通常情况会更好,如果您可以在事实之后生成序列,在选择期间始终生成序列而不是存储序列。这样,您不必执行维护任务(例如在删除期间关闭间隙或由于更新而重新排序值) – 2011-12-18 13:54:59

+0

[使用连续编号更新SQL]的可能重复(http://stackoverflow.com/questions/ 1167885/update-sql-with-consecutive-numbering) – gbn 2011-12-18 15:25:16

回答

-1

您可以简单地将WHERE子句添加到UPDATE语句中。请参阅http://dev.mysql.com/doc/refman/5.0/en/update.html以供参考。

基本上你做这样的事情:

​​
+0

不,他希望每个不同的组(类别)都有自己的序列。 – 2012-01-02 16:35:01

+0

然后,您需要遍历每个类别并在每个循环中重新初始化计数器。 – simonecampora 2012-01-02 16:40:03

+0

查看评论中的链接(由GSerg)在一个查询中完成。 – 2012-01-02 16:43:09