首页 > 解决方案 > 删除重复数据mysql

问题描述

如果我们使用,我们在哪里有重复的 id

SELECT MAX(id), COUNT(id) AS count 
FROM user_status 
GROUP BY user_id, user_type 
HAVING COUNT(*) > 1

我们得到重复的数据

现在,当我尝试通过删除将其插入时

DELETE 
FROM user_status 
WHERE id IN (SELECT MAX(id), COUNT(id) AS count 
             FROM user_status 
             GROUP BY user_id, user_type 
             HAVING COUNT(*) > 1
            )

我收到以下错误

Operand should contain 1 column

我怎样才能解决这个问题 ?TIA

标签: mysqlsql

解决方案


subquery由于消息很清楚,您正在选择不允许 inIN子句中的两列,但仍然mysql在查询的 from 中显示一些错误,所以请用下面的 join 替换查询

DELETE us 
FROM user_status us
INNER JOIN (SELECT MAX(id) id 
            FROM user_status 
            GROUP BY user_id, user_type HAVING COUNT(*) > 1) t ON t.id = us.id

推荐阅读