我知道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/