如果存在则更新,如果不存在则插入。

6

可能是重复的问题:
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查询来进行批量更新和插入,如果datehotelId已经存在,则进行更新,但如果不存在则进行插入?
我理解在PHP中循环每一天并检查数据是否存在将会花费大量内存。
for($i=1; $i<=31; $i++){...}

我正在寻找一种解决方案,可以使用单个/任何mysql查询来节省计算机资源。

1个回答

7

如何创建唯一的复合索引? - GusDeCooL
1
@GusDeCooL - 简单易懂:ALTER TABLE table ADD UNIQUE KEY (date, hotelId)。请参阅有关 ALTER TABLE 语句的文档 - Ted Hopp

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接