可能是重复的问题:
MySQL中如何进行更新,如果存在则插入(也称为upsert或merge)?
我有一个可以批量更新预订引擎价格的程序。
例如,用户输入要批量更新价格的方式如下:
$dateStart = '2012-12-01';
$dataEnd = '2012-12-31';
$hotelId = 1;
$price = 300000;
数据库就像这样
id | date | hotelId | price
1 | 2012-12-01 | 1 | 100000
如何使用MySQL查询来进行批量更新和插入,如果
date
和hotelId
已经存在,则进行更新,但如果不存在则进行插入?我理解在PHP中循环每一天并检查数据是否存在将会花费大量内存。
for($i=1; $i<=31; $i++){...}
我正在寻找一种解决方案,可以使用单个/任何mysql查询来节省计算机资源。
ALTER TABLE table ADD UNIQUE KEY (date, hotelId)
。请参阅有关ALTER TABLE
语句的文档。 - Ted Hopp