如果我有一个包含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,值是日期)
有没有办法用一个语句更新表?
我这样做的原因是因为我需要进行数百次更改,单次更新会有很多陈述。
答案 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`)
请注意,这可能会影响自动增量值,并且可能会在表中插入新记录。