0

如果我有一个包含 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,值是日期)

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

我这样做的原因是因为我需要进行数百次更改,而单个更新将是很多语句。

4

1 回答 1

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`)

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

于 2013-10-11T07:37:05.040 回答