我需要获取其中一个表的子集,然后在另一个查询中使用这些 ID,这可能吗?
理想情况下,我需要使用此查询的结果:
SELECT id
FROM table
GROUP BY col1, co12
HAVING COUNT(*) > 1
在此查询中:
UPDATE table
SET col1 = CONCAT(col1, '_1')
WHERE id IN (ABOVE_QUERY)
最佳答案
我认为您正在寻找这样的东西:
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 使用聚合函数。
关于mysql - 在另一个查询中使用一个查询的结果 (MySQL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21939237/