2012-01-16 46 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)