MySQL查询初始填写订单列

时间:2010-04-13 11:15:25

标签: sql mysql

抱歉模糊的问题标题。

我有一张包含大量产品的表格,这些产品属于不同的类别。有一个外键列指示特定产品属于哪个类别。即在“香蕉”行类别可能是3,表示“水果”。

现在我添加了额外的列“order”,用于该特定类别中的显示顺序。我需要做初始订购。由于列表很大,我不想手动改变每一行。是否可以使用一个或两个查询?我不在乎初始订单是什么,只要从1开始并上升。

我无法执行SET order = id之类的操作,因为无论产品类别如何,ID都会从1开始计算,并且必须从每个不同类别的1开始重新开始。

我需要实现的例子:

ID |产品|类别|为了

1 |香蕉|水果| 1

2 |椅子|家具| 1

3 |苹果|水果| 2

4 |可乐|饮料| 1

5 |芒果|水果| 3

6 |百事可乐|饮料| 2

(类别实际上是一个数字,因为它是外键,例如我只是为了澄清而放置名称)

如您所见,每个不同类别的订单号从1开始重新开始。

2 个答案:

答案 0 :(得分:1)

听起来像SQL procedure会很方便。

答案 1 :(得分:0)

为什么不将订单设置为类别?也就是说,为什么不:

update Table
set SortOrder = Category;

顺便说一下,你不能有一个名为order的列 - 这是SQL中的保留字。