mysql使用一个语句更新多个id / value对

时间:2013-10-11 07:27:20

标签: mysql sql-update

如果我有一个包含2列的mysql表:

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,值是日期)

有没有办法用一个语句更新表?

我这样做的原因是因为我需要进行数百次更改,单次更新会有很多陈述。

1 个答案:

答案 0 :(得分: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`)

请注意,这可能会影响自动增量值,并且可能会在表中插入新记录。