使用自动增量在mysql中生成序列号

时间:2014-04-02 07:05:32

标签: mysql

我曾尝试生成序列号,无论活动是否已重新安排(重新安排的时间),但输出错误。

在下图中,前5行是正确的,但是当它涉及新活动时,它应该再次从"重新安排1"开始。 在这里查询..

SELECT  concat('Reschedule ',@a:=@a+1) Reschedule_type, 
        activity, old_date,new_date
FROM    application_calender_reschedule_view
    , (SELECT @a:= 0) as a; 

我该怎么做......?

请查看以下快照以供参考。
http://i.stack.imgur.com/ynpwt.png

1 个答案:

答案 0 :(得分:0)

您需要将以前的活动存储在变量中并按活动排序,以确保所有活动都在一起:

SELECT  concat('Reschedule ', if(@activity = activity, @a:=@a+1, @a := 1)
              ) as Reschedule_type, 
        activity, old_date, new_date,
        @activity := activity
FROM    application_calender_reschedule_view cross join
        (SELECT @a:= 0, @activity := '') as a
ORDER BY activity, old_date