我有两张相似的表。
Table word
column names: id, name, describe
1 bob Is a cat
2 Sam Not a giraffe
3 Gub Like a cat
Table temp
column names: id, name, describe
1 bob Is a cat
2 Sam Not a giraffe
3 Gub Like a cat
4 Col The other one
我目前正在使用它来更新表temp中的表字,但是没有添加第4个值。我该怎么做?
UPDATE temp p, word pp
SET pp.name= p.name, pp.describe = p.describe
WHERE pp.id = p.id;
答案 0 :(得分:4)
试试这个:: INSERT ON DUPLICATE KEY UPDATE
INSERT INTO word(id, name, describe) SELECT id, name, describe FROM temp
ON DUPLICATE KEY UPDATE SET word.name = temp.name, word.describe = temp.describe;
答案 1 :(得分:1)
如果我理解正确,您希望将值从一个表复制到另一个表,保持相同的id
。在这种情况下,你不能把条件WHERE pp.id = p.id.这样,它只会复制“word”表中已存在的id
行,跳过任何唯一的行。您可以使用“INSERT INTO ... ON DUPLICATE KEY UPDATE”来获取它。 http://dev.mysql.com/doc/refman/5.1/en/insert-on-duplicate.html
答案 2 :(得分:0)
最后一个需要一个insert语句,因为它还不存在
INSERT INTO word pp SELECT * FROM temp left join on on temp.id = word.id where temp.id IS NULL