php - 如果行存在则更新,否则将新行插入另一个表

标签 php mysql

我知道this question但它没有帮助。

我有一个包含 ID 和值的列表。现在我必须检查我的用户数据库中是否存在该 ID。如果是,则该行将被更新,否则我必须将 ID 插入另一个表 (tmp_user)。

编辑:这是我的尝试

IF NOT EXISTS (SELECT * FROM `wcf1_user` WHERE `steamID` = 1) THEN

INSERT INTO `wcf1_points_tmp` (`steamID`, `points`) VALUES (1, 2)

ELSE

// Update stuff......

END IF;

结果:#1064 - 你的 SQL 语法有错误;检查与您的 MySQL 服务器版本对应的手册,了解在“IF NOT EXISTS (SELECT * FROM wcf1_user WHERE steamID = 1) THEN INSERT IN' 附近使用的正确语法”第 1 行

感谢您的帮助。 :)

最佳答案

如果您指定 ON DUPLICATE KEY UPDATE , 并插入一行,这会导致 UNIQUE 索引或 PRIMARY KEY 中出现重复值,UPDATE执行旧行。例如,如果列 a 声明为 UNIQUE 并包含值 1,则以下两个语句具有相同的效果:

INSERT INTO table (a,b,c) VALUES (1,2,3)
  ON DUPLICATE KEY UPDATE c=c+1;

UPDATE table SET c=c+1 WHERE a=1;

关于php - 如果行存在则更新,否则将新行插入另一个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23590428/

相关文章:

mysql - 如何计算 1 :N:N relation in a faster way? 中的行数

php - SQL 计数大小和性别

php - iOS NSURLConnection - 响应中的错误描述

php - 在实例创建时调用对象的方法

php - Importbuddy 内部 500 服务器错误步骤 3

javascript - 在 NodeJS 中导出 API 对象

mysql在多条记录的选择查询中通过id获取名称

mysql - 复合 where 子句的顺序(MySQL、Postgres)

php - 使用 MySQL 的原则

php - ZF2 选择语句 : Change columns order with joined tables