我有一个mysql表,在这里我使用这个查询:
INSERT INTO `stats` (`id`, `shop`, `price`, `timestamp`)
VALUES (NULL, '$shop', '$price', 'timestamp') ON DUPLICATE KEY UPDATE price='$price'
商店专栏是独一无二的。”id“=主键。timestamp列由mysql:on update current\u timestamp更新
Data in the dB:
row: id=1, shop=viacom, price=5, timestamp=1524183480
案例1:要插入的行:shop=viacom,price=6结果:更新现有行
案例2:要插入的行:shop=viacom,price=5(<--price has not change)结果:现有行未更新
我想让第二个案子开始运作。我可以用php代码来处理它,但我宁愿让mysql来做这项工作。有什么想法吗(我尝试添加一个where子句,比如$shop=shop)
2条答案
按热度按时间ajsxfq5m1#
由于shop列是唯一键,因此可以删除id列并使用下面的。
如果商店已经存在,则更新价格。否则将插入一个新的商店。这就是你想要的吗?
55ooxyrt2#
尝试更新
timestamp
手动列:=========
选项2:
如果您想在mysql中执行此操作,请创建存储过程并从php代码中调用存储过程。