使用组内的连续编号更新SQL

使用组内的连续编号更新SQL,sql,sequential-number,Sql,Sequential Number,我在这里找到了用连续数字更新表行的技术: 该技术的要点是使用(T-SQL): 这真是太棒了,效果也很好 这项技术是否可以扩展到不同的记录组,每组从1开始?e、 g 类别1行应获得序号1,2,3 类别2行还应获得序列号1,2,3 您只需在UPDATE语句中添加WHERE子句即可。请参阅以供参考 基本上你会做一些类似的事情: update myTable SET @myvar = myField = @myVar + 1 WHERE myCategory = 'CAT' 你链接到的问题中有一个

我在这里找到了用连续数字更新表行的技术:

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

这真是太棒了,效果也很好

这项技术是否可以扩展到不同的记录组,每组从1开始?e、 g

  • 类别1行应获得序号1,2,3
  • 类别2行还应获得序列号1,2,3

您只需在UPDATE语句中添加WHERE子句即可。请参阅以供参考

基本上你会做一些类似的事情:

update myTable
SET @myvar = myField = @myVar + 1
WHERE myCategory = 'CAT'

你链接到的问题中有一个问题。请参阅其中的最后一次编辑。如果您可以在事后生成序列,则最好总是在选择过程中生成序列,而不是存储序列。这样,您就不必执行维护任务(例如在删除过程中关闭间隙,或由于更新而重新排序值)可能重复的No,他希望每个不同的组(类别)都有自己的序列。然后您需要循环每个类别,并在每个循环周期中重新初始化计数器。请参阅注释中的链接(由GSerg)在一个查询中就做到了。OP说他正在使用TSQL。你的链接是针对MySQL的。我的错:确实是GSerge解决方案。我一直在回答MySQL的问题。
update myTable
SET @myvar = myField = @myVar + 1
WHERE myCategory = 'CAT'