0

我正在 MySQL 中创建一条记录,如果它已经存在,我不想创建它。但是我想更新一个名为 的字段invite_state,这意味着无论关系是什么,它现在都应该回到 state INVITED。问题是这条规则有一个例外 - 如果状态是UNSUBSCRIBED那么它不应该回到INVITED.

所以这将是on duplicate key updateMySQL 中的一个,但这不支持where子句。有解决方法吗?

4

1 回答 1

0

一种解决方法是使用该IF语句。

insert into (...) values (...)
on duplicate key update
set invite_state = IF(where_condition, new_value, invite_state)
于 2013-09-04T16:26:21.727 回答