我曾尝试生成一个序列号,以确定事件是否被重新安排(重新安排的次数),但得到了错误的输出。
在下图中,第 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
最佳答案
您需要将先前的事件存储在变量中并按事件排序,以便保证所有事件都在一起:
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
关于mysql - 在mysql中生成自动递增的序列号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22803875/