我有'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;
答案 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
此处onefield
和twofield
是您的部分字段。我假设ID
是自动增量字段(因此DBMS将替换正确的值)。请注意,在这种情况下,您必须明确地在查询中重新计算字段。
答案 1 :(得分:1)
insert into your_table (c1, c2, ...)
select c1, c2, ...
from your_table
where date =2013-12-12;