SQL查询在Mysql数据库的任何表中查找重复的行

时间:2014-08-19 04:56:05

标签: mysql sql

我正在寻找与架构无关的查询。查询应该同样能够捕获数据库中任一表中的重复行。我有许多没有主键的表。我找到了sql server的结果[我最有经验]但是在mysql中寻找相同的东西

1 个答案:

答案 0 :(得分:0)

使用动态SQL使用information_schema中的列信息生成查询:

SET @tablename = 'yourTable';
SET @sql = (
    SELECT CONCAT('SELECT * 
                   FROM `', table_name, '`
                   GROUP BY ', GROUP_CONCAT(CONCAT('`', column_name, '`')), '
                   HAVING COUNT(*) > 1')
    FROM information_schema.columns
    WHERE table_name = @tablename );
PREPARE stmt FROM @sql;
EXECUTE stmt;