REPLACE上的增量字段值

时间:2010-11-11 10:07:50

标签: mysql

我已经使用UPDATE语句成功完成了此操作,但不是REPLACE。

我在用户签出时在mysql表中保存喜欢的项目。

表Favs是:

USER (int)
ITEM (int)
COUNT (int default 0)

我正在尝试的SQL是:

REPLACE INTO favs (user,item,count) VALUES ('1','3', count + 1)

虽然它没有抛出任何错误,但它似乎也没有增加值。

这可能吗?谢谢。

1 个答案:

答案 0 :(得分:21)

在替换时看起来它不像这样工作。来自manual

  

你不能从中引用数值   当前行并在新的中使用它们   行。如果你使用诸如的作业   SET col_name = col_name + 1,the   引用上的列名   右手边被视为   DEFAULT(col_name),所以赋值   相当于SET col_name =   DEFAULT(col_name)+ 1。

编辑:

但是,INSERT ... ON DUPLICATE UPDATE可能会做你想要完成的事情:

INSERT INTO favs (user, item) VALUES (2, 3) 
  ON DUPLICATE KEY UPDATE count = count + 1;