抱歉模糊的问题标题。
我有一张包含大量产品的表格,这些产品属于不同的类别。有一个外键列指示特定产品属于哪个类别。即在“香蕉”行类别可能是3,表示“水果”。
现在我添加了额外的列“order”,用于该特定类别中的显示顺序。我需要做初始订购。由于列表很大,我不想手动改变每一行。是否可以使用一个或两个查询?我不在乎初始订单是什么,只要从1开始并上升。
我无法执行SET order = id之类的操作,因为无论产品类别如何,ID都会从1开始计算,并且必须从每个不同类别的1开始重新开始。
我需要实现的例子:
ID |产品|类别|为了
1 |香蕉|水果| 1
2 |椅子|家具| 1
3 |苹果|水果| 2
4 |可乐|饮料| 1
5 |芒果|水果| 3
6 |百事可乐|饮料| 2
(类别实际上是一个数字,因为它是外键,例如我只是为了澄清而放置名称)
如您所见,每个不同类别的订单号从1开始重新开始。
答案 0 :(得分:1)
听起来像SQL procedure会很方便。
答案 1 :(得分:0)
为什么不将订单设置为类别?也就是说,为什么不:
update Table
set SortOrder = Category;
顺便说一下,你不能有一个名为order
的列 - 这是SQL中的保留字。