复制并添加另一个月到MySQL表

时间:2014-03-14 11:11:55

标签: php mysql sql date

我有'mytable'在带有ID,日期和其他列的SQL中。

日期字段的格式为' yyyy-mm-dd'。

我想编写一个PHP脚本来复制给定月份的行,并在下个月将它们粘贴到完全相同的值。说,我想将数据从2013年12月复制到2014年1月,如何编写sql查询呢?

这是我尝试的内容:

CREATE TEMPORARY TABLE temp_table 
AS 
SELECT * FROM mytable WHERE MONTH(date)=12 AND YEAR(date)=2013'; 
UPDATE temp_table SET ???;
INSERT INTO mytable SELECT * FROM temp_table;
DROP TEMPORARY TABLE temp_table;

2 个答案:

答案 0 :(得分:2)

您根本不需要使用临时表:

INSERT INTO mytable (
  `date`, 
  `onefield`, 
  `twofield`
) 
SELECT 
  `date` + INTERVAL 1 MONTH, 
  `onefield`, 
  `twofield` 
FROM 
  mytable 
WHERE 
  MONTH(`date`)=12 
  AND 
  YEAR(`date`)=2013

此处onefieldtwofield是您的部分字段。我假设ID是自动增量字段(因此DBMS将替换正确的值)。请注意,在这种情况下,您必须明确地在查询中重新计算字段。

答案 1 :(得分:1)

insert into your_table (c1, c2, ...)
select c1, c2, ...
from your_table
where date =2013-12-12;