簡體   English   中英

SQL查詢更新字段取決於子查詢

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM