我有以下更新查询无效,需要帮助才能使此更新生效。任何帮助表示赞赏。
update polls
set updated_by=2
where updated_by=1
group by poll_date, server_id, product_id;
答案 0 :(得分:1)
您不能,因为GROUP BY
用于更改结果集的显示方式。 UPDATE
没有输出,因此没有任何内容可以分组。
结帐https://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html。
答案 1 :(得分:0)
假设表中存在唯一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