2013-10-11 40 views
0

如果我與2列的MySQL表:MySQL的更新多個ID /值對

ID Date 
1 2012-03-05 
2 2012-02-21 
3 2013-06-12 
4 2011-01-15 
5 2013-02-23 

和我有隨機更新,如

$arr = array('2'=>'2013-03-23','4'=>'2013-03-19','5'=>'2011-08-09'); 

的陣列(其中索引是ID和值是日期)

有沒有辦法用一條語句更新表?

我這樣做的原因,是因爲我需要進行數以百計的修改,而且單個更新將會有很多陳述。

+0

我不認爲這是可能的,但也許有人有辦法實現它。 –

+0

如果你將數組插入tempTable,那麼它可以很容易實現 –

+0

@SashiKant不知道你的意思。我可以閱讀的任何鏈接? –

回答

2

如果ID是唯一或主鍵,你可以做

INSERT INTO `Table` (ID, `Date`) 
VALUES ('2', '2013-03-23'), ('4', '2013-03-19'), ('5', '2011-08-09') 
ON DUPLICATE KEY UPDATE `Date` = VALUES(`Date`) 

注意,這可能會影響自動遞增值,它可能會插入新的記錄表。

+0

有趣。然而日期在我的情況下不是唯一的 –

+0

'日期'不需要是唯一的。 'ID'必須是唯一的或主鍵。 – Oswald

+0

aaah我明白了。將進行測試。 –