代码之家  ›  专栏  ›  技术社区  ›  Sejanus

订单列初始填充的MySQL查询

  •  0
  • Sejanus  · 技术社区  · 14 年前

    抱歉,题目含糊不清。

    我有一张表格,里面有很多,比如说,属于不同类别的产品。有一个外键列指示特定产品属于哪个类别。例如,在“香蕉”行中,类别可能是3,表示“水果”。

    现在,我添加了额外的列“order”,它用于该特定类别中的显示顺序。我需要先点餐。因为单子很大,我不想每一行都手工更改。可以用一个或两个查询吗?我不在乎最初的顺序是什么,只要它从1开始,然后上升。

    我不能做像SET order=id这样的事情,因为id从1开始计算,而不管产品类别是什么,对于每个不同的类别,订单必须从1开始重新计算。

    ID |产品|类别|订单

    1 |香蕉|水果| 1

    3 |苹果|水果| 2

    4 |可乐|饮料| 1

    6 |百事可乐|饮料| 2

    (category实际上是一个数字,因为它是外键,在示例中,我只是为了澄清而放了一些名称)

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

    2 回复  |  直到 14 年前
        1
  •  1
  •   Amber    14 年前

    SQL procedure 对我来说很方便。

        2
  •  0
  •   MJB    14 年前

    为什么不直接将顺序设置为类别?也就是说,为什么不:

    update Table
    set SortOrder = Category;
    

    作为旁白,不能将列命名为 order