0

我正在尝试在准备好的声明中做类似的事情:

UPDATE table SET active = ?, last_action = IF(VALUES(active) > 0, NOW(), last_action) WHERE id = ?

所以我试图访问我使用 SET active = 设置的值?在同一个查询中。

但是 VALUES(active) 似乎并不代表 active = 的值?当值是 INSERT INTO [...] VALUES [...] ON DUPLICATE KEY UPDATE ... 语句的一部分时,有什么方法可以使这项工作像它一样工作?

可能的解决方案:添加另一个像这样的参数:IF(? > 0, NOW(), last_action) 并将其设置为与 active = 相同的值 范围。

有没有更好的解决方案不需要我将相同的值绑定到另一个参数?

4

0 回答 0