我有个小问题,我的桌子“家具”里记录的ID是一样的。我带你去看看。
标题
id : public_name
1:“桌子”
1:“桌子”
1:“桌子”
2:“comp”
2:“comp”
3:“地毯”
3:“地毯”
3:“地毯”
3:“地毯”
我不知道它是怎么发生的,但是id 2的记录已经被复制了,其中一些甚至翻了三倍。我试过这个脚本来解决这个问题。
<?php
$con = mysql_connect("localhost","root","pass");
Mysql_Select_db("db", $con);
for($i = 0; $i < 52752; $i++) {
$find = mysql_query("SELECT * FROM furniture WHERE id = '".$i."'");
$count = mysql_num_rows($find);
mysql_query("DELETE FROM furniture WHERE id = '$i' LIMIT ($i - $count)");
echo "'.$i.' fixed";
}但它不工作,它删除所有的id,我希望它留下一个记录的每个id。
有什么简单的查询或脚本可以解决这个问题吗?
发布于 2017-12-09 14:33:15
MySQL中最简单的方法是空表并重新填充表:
create table temp_furniture as
select distinct id, public_name
from furniture;
truncate table temp_furniture;
insert into temp_furniture(id, public_name)
select id, public_name
from temp_furniture;然后,为了防止将来发生这种情况,添加唯一的索引/约束:
create unique index unq_furniture_id on furniture(id);你可能也想在名字上写上:
create unique index unq_furniture_public_name on furniture(public_name);https://stackoverflow.com/questions/47729614
复制相似问题