mysql - 在另一个查询中使用一个查询的结果 (MySQL)

标签 mysql

我需要获取其中一个表的子集,然后在另一个查询中使用这些 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/

相关文章:

mysql - Symfony Doctrine 查询返回无效,返回 1 和 11

mysql - 索引是否依赖于选定的列?

PHP - AJAX 和 MySQL - 查询错误

mysql - 避免空返回集

C# 如何向单独的类添加 mysql 连接?

MySQL 查询 - 返回每个月过去 12 个月记录的值

php - 无法通过 php 连接到 mysql,但从命令行可以正常工作

MySql 将行转为列,将列转为行

mysql - 我怎样才能得到这个查询中的逾期天数?

mysql - 为什么使用 GROUP BY 会得到这个结果?