2014-02-19 21 views
-1

我有以下更新查詢哪些不起作用,並需要幫助獲取此更新才能工作。任何幫助表示讚賞。我如何使用group創建一個UPDATE語句?

update polls 
    set updated_by=2 
where updated_by=1 
group by poll_date, server_id, product_id; 
+0

'UPDATE'不允許使用' GROUP BY',請在這裏檢查正確的語法:http://dev.mysql.com/doc/refman/5.7/en/update.html你不清楚你想用GROUP BY來實現什麼,請解釋一下。 – krokodilko

+0

即時試圖從我的數據庫中刪除重複,通過將它們標記爲updated_by = 2 – Candice

回答

0

Assumming有在表中的唯一ID(主鍵),該查詢可以標記爲重複2

UPDATE polls p1 
JOIN 
(SELECT id 
    FROM polls p1 
    WHERE EXISTS (
    SELECT 1 FROM polls p2 
    WHERE p1.poll_date = p2.poll_date 
     AND p1.server_id = p2.server_id 
     AND p1.product_id = p2.product_id 
     AND p2.id < p1.id 
) 
) p2 
ON p1.id = p2.id 
SET p1.updated_by = 2 
WHERE p1.updated_by = 1 

演示:http://sqlfiddle.com/#!2/9b83b/1

+0

嗨,這幾乎可以工作,但我需要它將重複集中的最高或最高數量設置爲2。它只是設置具有最高ID的那個。我更新了演示以顯示實際數據。感謝您的幫助。 – Candice