我在MySQL中创建了一条记录,如果它已经存在,我不想创建它。但是我想更新一个名为invite_state
的字段,意思是无论关系是什么,它现在都应该回到状态INVITED
。问题是此规则有一个例外 - 如果状态为UNSUBSCRIBED
,那么它不应该返回INVITED
。
因此,这将是MySQL中的on duplicate key update
,但这不支持where
子句。有解决方法吗?
答案 0 :(得分:0)
解决方法是使用IF
语句。
insert into (...) values (...)
on duplicate key update
set invite_state = IF(where_condition, new_value, invite_state)