2014-02-21 128 views
0

我需要获取我的一个表的一个子集,然后在另一个查询中使用这些ID,这可能吗?在另一个查询中使用一个查询的结果(MySQL)

理想情况下,我需要使用此查询的结果是:

UPDATE table 
SET col1 = CONCAT(col1, '_1') 
WHERE id IN (ABOVE_QUERY) 
+0

什么问题..只需将第一个查询插入到第二个查询的括号中 - done。 – mhafellner

回答

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') 

SELECT id 
FROM table 
GROUP BY col1, co12 
HAVING COUNT(*) > 1 

此查询中

在MySQL中,您需要使用JOIN,因为您不允许更新子查询中引用的表。而且您可能需要在子查询返回的ID上使用聚合函数。

相关问题