php – MySQL插入重复密钥

我正在建立一个评级系统,而我想插入一个新的行,如果名称字段不包含我想插入的名称,如果它存在,我想增加计数字段1

例如,如果我有一行“Tom”,我尝试插入名为“Tom”的另一行,那么我想为已存在的行的字段计数1.

如果名称为“Tom”的行不存在,我想插入一个新的,并将count设置为1.

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

有任何想法吗?
谢谢!

最佳答案
INSERT … ON DUPLICATE KEY UPDATE

If you specify ON DUPLICATE KEY UPDATE, and a row is inserted that would cause a duplicate value in a UNIQUE index or PRIMARY KEY, an UPDATE of the old row is performed.

例如

INSERT INTO table (name,counter) VALUES ('Bob', 1)
  ON DUPLICATE KEY UPDATE counter=counter+1

转载注明原文:php – MySQL插入重复密钥 - 代码日志