我需要一个SQL查询。 我的表用户有3个字段:名称,iduser,idgroup。
一个用户可以在具有相同iduser和不同idgroup的同一个表上多次出现。
如果字段名称已更改,则字段名称应更新为新值。
如果没有给定iduser和idgroup的行,则必须将其作为新行插入。
IF EXISTS(SELECT 1 FROM users WHERE iduser=3 AND idgroup=4)
BEGIN
UPDATE users SET Name='New Name' WHERE iduser=3 AND idgroup=4
END
ELSE
INSERT INTO users VALUES('Name',5,3)
END
我的SQL查询sintax错了所以我无法使用它,你将如何实现我的需求?
我使用mySQL数据库(使用phpmyadmin管理)并从lua脚本执行插入操作。
答案 0 :(得分:0)
您需要确保拥有正确的唯一密钥。
ALTER TABLE users ADD UNIQUE `unique_index`(`iduser`, `idgroup`);
然后,您应该能够运行此插入/更新:
INSERT INTO users (Name, iduser, idgroup)
VALUES ('name value',5,3)
ON DUPLICATE KEY UPDATE Name = VALUES(Name) WHERE Name <> VALUES(Name)