[英]SQL Query Update field depending on subquery
我需要一個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腳本進行插入。
您需要確保擁有正確的唯一鍵。
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)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.