我需要获取其中一个表的子集,然后在另一个查询中使用这些id,这可能吗?
理想情况下,我需要使用此查询的结果:
SELECT id
FROM table
GROUP BY col1, co12
HAVING COUNT(*) > 1
在此查询中:
UPDATE table
SET col1 = CONCAT(col1, '_1')
WHERE id IN (ABOVE_QUERY)
答案 0 :(得分:1)
我认为你正在寻找这样的东西:
UPDATE
table INNER JOIN (SELECT MAX(id) as m_id
FROM table
GROUP BY col1, co12
HAVING COUNT(*) > 1) t1
ON table.id = t1.m_id
SET col1 = CONCAT(col1, '_1')
在MySQL中,您需要使用JOIN,因为不允许更新子查询中引用的表。而且您可能需要对子查询返回的ID使用聚合函数。