2012-09-15 41 views
1

我想将ID = 1的行复制到同一个表中的新行。但是两列(UID和Date)不能与原始行相同。重复行更改某些列?

INSERT IGNORE INTO `Posts` (`A`,`B`,`UID`,`Date`) VALUES 

如何获得的所有值从ID = 1行,但更改UID为2和日期NOW()?

+0

表结构? – diEcho

回答

1
INSERT INTO `Posts` (`A`,`B`,`UID`,`Date`) 

SELECT col1, col2, `your definedvalue1`,`your defined date `, 
FROM this_table 
WHERE 1>0(your condition); 
0

尝试:

INSERT IGNORE INTO `Posts` (`A`,`B`,`UID`,`Date`) 
select a, b, 2, now() from `Posts` where UID = 2; 

example

+0

我认为这是一个错误,你不能''价值'在这个声明 –

+0

@安南达布抱歉,但我不明白... – alfasin

+0

我认为他的意思是你必须在声明中使用VALUES()。无论如何,我无法做到这一点。 – lisovaccaro

0

TRY

INSERT INTO Posts (`A`,`B`,`UID`,`Date`) 
SELECT `A`,`B`,`UID`,`Date` FROM Post 
ON DUPLICATE KEY UPDATE UID =2 DATE =NOW() 

注:UID赚指数和日期列

+0

我无法制作任何列的索引。 – lisovaccaro