2013-11-01 93 views
0

我有一個表稱爲顏色。在這個表格中有兩個字段:color和is_duplicate。如果在顏色列中找到多個相同的值,我想在is_duplicate字段中放置1。更新字段,如果其他字段在同一表中有重複

這是我到目前爲止所嘗試的,但它回來的錯誤,因爲我是新的MySQL語法。

update colors 
set is_duplicate = 1 
where color 
HAVING COUNT(*) > 1 

我這樣做,所以我就可以刪除所有副本的副本,並在以後的時間回去看看它記錄一段時間內的重複。

有什麼建議嗎?謝謝。

回答

0

試試這個:

update colors tab1 join (select color, count(*) as num_color 
     from colors group by color 
     having count(*) > 1 
     ) tab2 on tab1.color = tab2.color  
set is_duplicate = 1 
+0

在你的榜樣,是TAB1和TAB2指兩個不同的表?我不確定我是否遵守。我試圖做到這兩個列在同一個表中。這會繼續嗎? –

+0

對不起,tab1是顏色,而tab2只是查詢結果的別名 –

+0

當我嘗試運行時,phpmyadmin會拋出此錯誤:#1093 - 您無法在FROM子句中指定目標表'顏色'作爲更新 –

相關問題