MySQL插入重复键

tar*_*eld 10 php mysql insert

我建立一个评级系统,我想插入新行,如果该name字段已经包含name我要插入,如果它确实存在,我想增加count1场

例如,如果我有一行name'Tom'并且我尝试使用name'Tom 插入另一行,那么我想要已经存在的行上的+1字段count.

如果name没有"Tom" 的行,我想插入一个新的并设置count为1.

我知道我可以使用大约3个SQL语句和一些if语句来执行此操作,但这会在执行2/3 sql命令时减慢脚本速度.

有任何想法吗?谢谢!

Vol*_*erK 12

请参阅INSERT ... ON DUPLICATE KEY UPDATE

如果指定ON DUPLICATE KEY UPDATE,并且插入的行将导致UNIQUE索引或PRIMARY KEY中出现重复值,则执行旧行的UPDATE.

例如

INSERT INTO table (name,counter) VALUES ('Bob', 1)
  ON DUPLICATE KEY UPDATE counter=counter+1
Run Code Online (Sandbox Code Playgroud)