6

重複の可能性:
MySQL で存在する場合は更新し、存在しない場合は挿入 (アップサートまたはマージ) するにはどうすればよいですか?

予約エンジンの価格を一括更新できるプログラムがあります。

更新バッチを実行するためのユーザー入力の例 価格は次のようになります

$dateStart = '2012-12-01';
$dataEnd = '2012-12-31';
$hotelId = 1;
$price = 300000;

そして、データベースはこのようなものです

id | date       | hotelId | price
1  | 2012-12-01 | 1       | 100000

バッチ更新を実行し、条件付きで挿入を行うには、MySQL クエリはどのようにする必要がありますdatehotelId?

毎日ループして、PHPにデータが存在するかどうかを確認すると、実際に多くのメモリが消費されるかどうかを理解しています。

for($i=1; $i<=31; $i++){...}

コンピュータリソースを節約できる単一/任意のmysqlクエリでそれを行う方法を探しています。

4

1 に答える 1

7

INSERT ... ON DUPLICATE KEY UPDATE ...ステートメントを使用します。

DUPLICATE KEY 条件がトリガーされるように、列dateと列に UNIQUE または PRIMARY 複合インデックスが必要です。hotelId

于 2012-12-27T17:10:57.350 に答える