说我的SQL表看起来像这样:
Week | User | Score
-----+-------+------
1 | Bob | 14
1 | Tim | 22
2 | Bob | -19
2 | Time | -12
2 | Steve | 31
我想创建一个SQL查询来复制最近一周的每个条目(在这种情况下为2),并将它们粘贴到相同的同一周,其中一周增加一个,并且“得分”列为零。结果如下:
Week | User | Score
-----+-------+------
1 | Bob | 14
1 | Tim | 22
2 | Bob | -19
2 | Time | -12
2 | Steve | 31
3 | Bob |
3 | Tim |
3 | Steve |
答案 0 :(得分:3)
您想要做的只是采取最新的值并将其重新插入,稍作修改:
INSERT INTO my_table (id, name, val)
SELECT id+1, name, null
FROM my_table
WHERE id = (SELECT MAX(id) FROM my_table)
有关工作示例,请参阅此sqlfiddle。