使用更新的值将表详细信息复制到同一个表 - MySql

时间:2016-11-10 04:30:39

标签: php mysql

以下是我的表格详情。

Id(A.inc)| Title   | StartDate
1        | Program | 2016-11-11T22:05:00 
2        | Songs   | 2016-11-11T22:10:00 
3        | Speech  | 2016-11-11T22:15:00 
4        | News    | 2016-11-11T22:20:00 
5        | Debate  | 2016-11-11T22:25:00

我需要将所有上述详细信息复制到同一个表格中,并在StartDate列中显示第二天的更新值,而ID应该是唯一的自动递增值。

以下是我所期待的细节,

Id(A.inc)| Title   | StartDate
6        | Program | 2016-11-12T22:05:00 
7        | Songs   | 2016-11-12T22:10:00 
8        | Speech  | 2016-11-12T22:15:00 
9        | News    | 2016-11-12T22:20:00 
10       | Debate  | 2016-11-12T22:25:00

是否可以使用mysql?在此先感谢:)

1 个答案:

答案 0 :(得分:2)

我假设您的Id列是AUTO_INCREMENT-ed,您只想复制数据,而不是替换。为此,你可以试试这个:

INSERT INTO your_table (Id, Title, StartDate)
SELECT Id, Title, DATE_FORMAT(DATE_ADD(StartDate, INTERVAL 1 DAY), '%Y-%m-%dT%k:%i:%s')
FROM your_table
WHERE Id BETWEEN 1 and 5;

或者只是省略Id列,因为AUTO_INCREMENT-ed列会自动增加其值。

INSERT INTO your_table (Title, StartDate)
SELECT Title, DATE_FORMAT(DATE_ADD(StartDate, INTERVAL 1 DAY), '%Y-%m-%dT%k:%i:%s')
FROM your_table
WHERE Id BETWEEN 1 and 5;

有关日期和时间格式的更多信息:MySQL Date and Time Functions