如何在不更改/添加任何额外列的情况下从MySQL表中删除所有重复数据?
SELECT * FROM webs;
+--------+
| web |
+--------+
| google |
| google |
| msn |
| yahoo |
| msn |
| yahoo |
+--------+
结果应为:
+--------+
| web |
+--------+
| google |
| yahoo |
| msn |
+--------+
答案 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;