我有以下更新查詢哪些不起作用,並需要幫助獲取此更新才能工作。任何幫助表示讚賞。我如何使用group創建一個UPDATE語句?
update polls
set updated_by=2
where updated_by=1
group by poll_date, server_id, product_id;
我有以下更新查詢哪些不起作用,並需要幫助獲取此更新才能工作。任何幫助表示讚賞。我如何使用group創建一個UPDATE語句?
update polls
set updated_by=2
where updated_by=1
group by poll_date, server_id, product_id;
您不能像GROUP BY
那樣改變結果集的顯示方式。 UPDATE
沒有輸出,所以沒有什麼可以分組的。
結賬https://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html。
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
嗨,這幾乎可以工作,但我需要它將重複集中的最高或最高數量設置爲2。它只是設置具有最高ID的那個。我更新了演示以顯示實際數據。感謝您的幫助。 – Candice
'UPDATE'不允許使用' GROUP BY',請在這裏檢查正確的語法:http://dev.mysql.com/doc/refman/5.7/en/update.html你不清楚你想用GROUP BY來實現什麼,請解釋一下。 – krokodilko
即時試圖從我的數據庫中刪除重複,通過將它們標記爲updated_by = 2 – Candice