更新Update查询mysql中的两列

时间:2012-01-16 09:38:10

标签: mysql sql

UPDATE IP SET (src_ip, vlan_id) = (SELECT DISTINCT src_ip, vlan_id FROM video_2)

此命令有语法错误。我需要使用src_ip和vlan_id作为一对,因为在表video_2中,相同的src_ip可能有相同或不同的vlan_id,所以我需要从video_2中选择唯一的“src_ip,vlan_id”paris并将它们放入新的IP表中

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:1)

当你说"put them into a new table"时,你的意思是你真的想要插入吗? (目标表当前是空的?)

INSERT INTO
  IP
SELECT DISTINCT
  src_ip, vlanid
FROM
  video2


如果你的意思是IP表中已有记录,你如何决定哪个记录应该获得哪个ip / vlanid组合?您需要首先将其视为连接,您可以将需要更新的每个记录与要更新的组合相匹配。如果你可以把它写成直接的SELECT(一边是IP记录,另一边是Veido2记录),我们可以告诉你如何把它变成一个更新。

答案 1 :(得分:0)

你可以在Oracle中做到这一点,不确定它是否在MySQL中被允许,因此你的语法错误。意味着您需要使用像

这样的东西
UPDATE tbl SET field1 = value1, field2 = value2 WHERE (condition)