卡车明细表

id  Order_ref_id    tryck_type_ref_id   position_index
1   226                 24                  1
2   226                 24                  2
3   226                 32                  1
4   226                 35                  1
5   226                 35                  2
6   227                 15                  1
7   227                 15                  2
8   228                 10                  1
9   229                 32                  1
10  229                 32                  2


mysql更新位置索引值,如我在表中所示。每个订单将有多种卡车类型。如果将一辆卡车重复订购2次,则位置索引将为1,2。
那么任何人都可以在这方面帮助我...
我尝试使用游标..不是位置索引未正确更新

最佳答案

这很容易做到没有光标。您只需要变量:

set @rn := 0;
set @ot := ''
update t
    set position_index = (case when @ot = concat_ws('-', Order_ref_id, tryck_type_ref_id)
                               then (@rn := @rn + 1)
                               when @ot := concat_ws('-', Order_ref_id, tryck_type_ref_id)
                               then @rn := 1
                          end)
    order by id;

关于mysql - MySQL游标更新位置索引与循环计数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40518891/

10-12 22:18