可能重复:
How do I update if exists, insert if not (aka upsert or merge) in MySQL?
我有程序可以批量更新预订引擎的价格。
示例用户输入要做更新批处理的价格是这样的
$dateStart = '2012-12-01';
$dataEnd = '2012-12-31';
$hotelId = 1;
$price = 300000;
数据库就像这样
id | date | hotelId | price
1 | 2012-12-01 | 1 | 100000
如果date
和hotelId
已经存在,MySQL Query如何进行批量更新和插入条件然后进行更新,但如果不存在则插入?
我理解如果每天循环并检查PHP中是否存在数据将真正花费大量内存。
for($i=1; $i<=31; $i++){...}
我正在寻找解决方案如何使用单个/任何可以节省计算机资源的mysql查询来完成。
答案 0 :(得分:6)
使用INSERT ... ON DUPLICATE KEY UPDATE ...
声明。
要求date
和hotelId
列上有一个UNIQUE或PRIMARY复合索引,以便触发DUPLICATE KEY条件。