基于Multi Column的mySQL更新

时间:2014-10-24 18:40:11

标签: mysql

我正在尝试同步两个表。如果值已更改,则需要根据repl表中的值更新原始表。当我通过连接表来运行更新时,它会使用第一个值更新所有连接行。

UPDATE orig inner join repl on ((orig.lookuptype =  repl.lookuptype) AND (orig.lookupsubtype = repl.lookupsubtype)) SET orig.choicevalue = repl.choicevalue, orig.choicelabel = repl.choicelabel, orig.isactive = repl.isactive where orig.choicevalue <> repl.choicevalue OR orig.choicelabel <> repl.choicelabel OR   orig.isactive <> repl.isactive

UPDATE orig INNER JOIN repl USING (lookupsubtype,lookupsubtype) SET orig.choicevalue = repl.choicevalue,orig.choicelabel = repl.choicelabel, orig.isactive = repl.isactive where orig.choicevalue <> repl.choicevalue OR orig.choicelabel <> repl.choicelabel OR    orig.isactive <> repl.isactive

表格结构:

CREATE TABLE IF NOT EXISTS `orig` ( `lookupid` int(11) NOT NULL, `lookuptype` varchar(255) DEFAULT NULL, `lookupsubtype` varchar(255) DEFAULT NULL, `choicevalue` varchar(255) DEFAULT NULL, `choicelabel` varchar(255) DEFAULT NULL, `isactive` tinyint(1) DEFAULT NULL ) 

有关如何解决此问题的任何想法?任何帮助表示赞赏。

0 个答案:

没有答案