删除重复记录

时间:2019-04-16 08:20:37

标签: mysql

如何在不更改/添加任何额外列的情况下从MySQL表中删除所有重复数据?

SELECT * FROM webs;

+--------+
|  web   |
+--------+  
| google |
| google | 
| msn    |
| yahoo  |   
| msn    |
| yahoo  |
+--------+

结果应为:

+--------+
|  web   |
+--------+
| google |
| yahoo  | 
| msn    |
+--------+

3 个答案:

答案 0 :(得分:1)

您可以通过一个临时表来实现它:

function toggleLayers(layers,id)
    {
        var i, l = layers.length;
        if ($('#'+id).is(':checked')) {
            for(i = 0; i < l; i++){
                layers[i].setMap(map);
            }
        }
        else
        {
            for(i = 0; i < l; i++){
                layers[i].setMap(null);
            }
        }
    }

答案 1 :(得分:0)

DELETE d1 FROM `webs` d1 
INNER JOIN `webs` d2
WHERE d1.column_name = d2.column_name AND d1.id>d2.id;

希望这会有所帮助。这将检查单个列,因为您的表具有用于重复检查的单个列。将column_name替换为实际的列名。

编辑:

如果表只有一列

ALTER IGNORE TABLE `webs` ADD UNIQUE(web)

答案 2 :(得分:0)

选择DISTINCT网站 FROM table_name;

UPD

插入tempTableName(cellId,attributeId,entityRowId,value)     SELECT DISTINCT cellId,attributeId,entityRowId,value     FROM tableName;

https://stackoverflow.com/a/5016434/8483171