MySQL基于日期添加计数字段
您好,我有上面的表格布局,但“尝试”字段为空 我正在尝试根据ID日期更新尝试字段 我用过这个MySQL基于日期添加计数字段,mysql,sql-order-by,Mysql,Sql Order By,您好,我有上面的表格布局,但“尝试”字段为空 我正在尝试根据ID日期更新尝试字段 我用过这个 id num date Attempt 1 555 2015-01-03 01:00:00 1 1 555 2015-01-03 02:00:00 2 1 555 2015-01-03 03:00:00 3 1 555 2015-01-01 04:03:03 4 1 555 2015-01-02
id num date Attempt
1 555 2015-01-03 01:00:00 1
1 555 2015-01-03 02:00:00 2
1 555 2015-01-03 03:00:00 3
1 555 2015-01-01 04:03:03 4
1 555 2015-01-02 06:00:00 5
1 555 2015-01-06 17:55:24 6
1 555 2015-01-07 18:00:00 7
2 666 2015-01-07 01:00:00 1
2 666 2015-01-07 02:00:00 2
问题是,我还需要添加group by子句,以便它在新id上拾取并重新开始从1开始的增量,因为编号只是继续到下一个id,所以我的结果当前如下所示:
SET @x = 0;
UPDATE attempts
SET attempt = (@x:=@x+1) ORDER BY id, date
因此,由于新ID,8和9应分别为1和2
有人能帮我编写一些代码来获得我想要的结果吗?这里有一种方法:
id num date Attempt
1 555 2015-01-03 01:00:00 1
1 555 2015-01-03 02:00:00 2
1 555 2015-01-03 03:00:00 3
1 555 2015-01-01 04:03:03 4
1 555 2015-01-02 06:00:00 5
1 555 2015-01-06 17:55:24 6
1 555 2015-01-07 18:00:00 7
2 666 2015-01-07 01:00:00 8
2 666 2015-01-07 02:00:00 9
一定要弄清楚您是想按id,date
还是num,date
订购
SET @x = 0;
SET @num = -1;
UPDATE attempts
SET attempt = if(@num = num, @x := @x+1,
if(@num := num, @x := 1, @x := 1)
)
ORDER BY id, date;