MySQL:IF使用IF ELSE语句将这些表中的ELSE INSERT更新为另一个表

时间:2017-05-11 06:36:00

标签: mysql

我有两张桌子user& user_tmp仅将主键设为id。这两个表的字段可能是:

`id` PRIMARY AUTO_INCREMENT INT,
`Name` VARCHAR(80),
`Contact No` VARCHAR(10),
`Status` INT

我需要一个基于IF EXISTS ON user_tmp表的简单查询,然后user user ELSE插入id表中的更新值。

我试过REPLACE&在DUPLICATE KEY上,但它不起作用,因为CREATE TRIGGER MyTrigger AFTER INSERT ON table FOR EACH ROW BEGIN UPDATE table SET a=?,b=?,... END; 是PRIMARY KEY,并且两个表中的值都不同。

问候。

1 个答案:

答案 0 :(得分:0)

你需要做两个查询。一个查询来更新匹配的记录:

INSERT INTO user (Name, Contact_No, Status)
SELECT t.Name, t.Contact_No, t.Status
FROM user_tmp AS t
LEFT JOIN user AS u ON u.Contact_No = t.Contact_no
WHERE t.id IS NULL

和第二个插入尚不存在的那些:

SELECT

有关INSERTaddItem()查询如何查找不匹配的行的说明,请参阅Return row only if value doesn't exist