我可以在mysql中使用REPLACE和WHERE子句吗?

就像是:
REPLACE INTO vips SET active = 0, inactive = 0 WHERE ip = 3494220867 AND proto = "https";
    
已邀请:
是的,它的工作原理与更标准的
insert
完全相同,因为它毕竟是
delete/insert
等价物。 详情请见此处。 根据您添加的评论:   在我问这个问题之后,我发现我可能正在寻找能够提供与替换相同功能但在更新中的东西。如果记录存在(如果ip和proto存在),我正在尝试更新活动和非活动列。如果ip和proto列与行不匹配,则会插入它。我在原始帖子中提供的查询不起作用。 我想你正在寻找INSERT ... ON DUPLICATE KEY UPDATE命令。 如果行已经存在,这将尝试
insert
数据并执行
update
位。 现在我不确定这将有多好,除非ip / proto是主键。您可能需要恢复到以下标准方法:
begin transaction.
try:
    insert data into table with default values.
catch exception violates_unique_constraint:
    do nothing.
update data in table with new values.
end transaction
    

要回复问题请先登录注册