2012-01-16 56 views
0
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表在更新查询中更新两列mysql

任何人都可以帮忙吗?

+0

那么你是'UPDATE'ing或'INSERT'到'IP'表?我很困惑。 – bububaba 2012-01-16 09:43:32

回答

1

当你说"put them into a new table"你的意思是你实际上想要做一个插入吗? (目标表目前是空的?)

INSERT INTO 
    IP 
SELECT DISTINCT 
    src_ip, vlanid 
FROM 
    video2 


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

0

你可以在Oracle中做到这一点,不知道它是否允许在MySQL中,尽管因此你的语法错误。意味着你需要使用类似的东西

UPDATE tbl SET field1 = value1, field2 = value2 WHERE (condition)