2012-09-15 36 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