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 で、値は日付です)

1 つのステートメントでテーブルを更新する方法はありますか?

私がこれを行っている理由は、何百もの変更を加える必要があり、1 回の更新で大量のステートメントが発生するためです。

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 に答える