0
我需要获取我的一个表的一个子集,然后在另一个查询中使用这些ID,这可能吗?在另一个查询中使用一个查询的结果(MySQL)
理想情况下,我需要使用此查询的结果是:
UPDATE table
SET col1 = CONCAT(col1, '_1')
WHERE id IN (ABOVE_QUERY)
我需要获取我的一个表的一个子集,然后在另一个查询中使用这些ID,这可能吗?在另一个查询中使用一个查询的结果(MySQL)
理想情况下,我需要使用此查询的结果是:
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')
SELECT id
FROM table
GROUP BY col1, co12
HAVING COUNT(*) > 1
此查询中
在MySQL中,您需要使用JOIN,因为您不允许更新子查询中引用的表。而且您可能需要在子查询返回的ID上使用聚合函数。
什么问题..只需将第一个查询插入到第二个查询的括号中 - done。 – mhafellner