SQL将行的副本创建到同一个表中

时间:2015-07-25 02:21:26

标签: php sql

说我的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 |

1 个答案:

答案 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