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