MySQL如何根据字段是否存在插入新记录或更新字段?

MySQL如何根据字段是否存在插入新记录或更新字段?,mysql,sql,sql-update,sql-insert,Mysql,Sql,Sql Update,Sql Insert,我正在尝试实施一个评级系统,其中我在db表中保留以下两个字段: 额定值(当前额定值) num_rates(到目前为止提交的评级数量) 这些变量来自我的PHP代码 因此,基本上,有时数据库中不存在带有uniqueCol的行,因此如果存在,我如何执行上述语句,如果不存在,则执行如下操作: INSERT INTO `mytable` SET rating=$theRating, num_rates=1, uniqueCol=$uniqueCol 看一看 应该是这样的: INSERT INTO

我正在尝试实施一个评级系统,其中我在db表中保留以下两个字段:

额定值(当前额定值) num_rates(到目前为止提交的评级数量)

这些变量来自我的PHP代码

因此,基本上,有时数据库中不存在带有uniqueCol的行,因此如果存在,我如何执行上述语句,如果不存在,则执行如下操作:

INSERT INTO `mytable`
   SET rating=$theRating, num_rates=1, uniqueCol=$uniqueCol
看一看

应该是这样的:

INSERT INTO mytable (rating, num_rates, uniqueCol)
VALUES ($theRating, 1, $uniqueCol)
ON DUPLICATE KEY UPDATE
  rating=((rating*num_rates)+$theRating)/num_rates,
  num_rates=num_rates+1;
确保在
uniqueCol
上有
唯一索引
主键

INSERT INTO mytable (rating, num_rates, uniqueCol)
VALUES ($theRating, 1, $uniqueCol)
ON DUPLICATE KEY UPDATE
  rating=((rating*num_rates)+$theRating)/num_rates,
  num_rates=num_rates+1;