1
喜欢的东西:我可以在MySQL中使用REPLACE和WHERE子句吗?
REPLACE INTO vips SET active = 0, inactive = 0 WHERE ip = 3494220867 AND proto = "https";
喜欢的东西:我可以在MySQL中使用REPLACE和WHERE子句吗?
REPLACE INTO vips SET active = 0, inactive = 0 WHERE ip = 3494220867 AND proto = "https";
是的,它的工作原理完全一样的更标准insert
因为它毕竟是一个delete/insert
等同。
查看here了解详情。根据您添加的注释
:
我问这个quesiton它发生,我认为我可能寻找的东西,提供相同的功能,但替换在更新后。如果记录存在(如果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
我问这个quesiton它发生,我认为我可能寻找的东西,提供相同的功能,但替换在更新后。如果记录存在(如果ip和proto存在),我试图更新活动列和非活动列。如果ip和proto列不匹配一行,它会插入它。我在原始文章中提供的查询不起作用。 – vicTROLLA 2010-07-04 08:22:31