我可以通过以下方式找到重复项:
select id,date,count(*) as rep,comment
from New_opinion group by comment,
Date,company_id having rep>1;
我相信这给了我一个重复组中的一条记录,它们与相同的评论相匹配,Date和company_id是关闭但只显示其中一个匹配的副本。
我想要选择除一个副本之外的所有副本并删除它们。 id是主键 我已经工作了好几个小时了,不断收到有关操作数需要1列的错误,或者删除非密钥等等。请帮助,其他删除答案似乎无法正常工作。
答案 0 :(得分:0)
试试这个......
<div class="dp">
<img src="http://rs618.pbsrc.com/albums/tt265/davejarrett/Avatars/check-in-minion_zps7ee060ac.jpg~c200" alt="" width="128">
<div class="edit-dp">
<a href="#">Edit Image</a>
</div>
</div>
我希望这会有效..
答案 1 :(得分:0)
您的评论组有多个ID,这就是您无法将其用于DELETE的原因。
在字段列表中尝试this.redirect(field.id+'/'+field.subId+'/'+field.pageType);
以查看ID号列表。
组内容不够相似 - 如果每个字段都相同,只要它不存在主键,它就只是一个有用的组。
答案 2 :(得分:0)
尝试此操作以保持行ID最低
DELETE r1 FROM tableName r1, tableName r2 WHERE r1.id > r2.id AND r1.x = r2.x
要保持ID最高的行只需更改
WHERE r1.id < r2.id
答案 3 :(得分:0)
说你有两个公司SMITH&amp; amp; SON,这些行中的哪一行保留了吗?如果确实如此(比如每个公司按日期最新的那个),那么你可能想要选择那些新表,然后截断旧表,然后将新表中的值复制回旧表,然后添加唯一索引这些专栏。如果保留哪个只是其中一个并不重要那么你可以立即添加索引,告诉它忽略该表,这将立即删除重复项,为每个重复发生的公司留下一个随机行。后者是这样的:
ALTER IGNORE TABLE yourtablename ADD UNIQUE companyid, date, comment
如果您需要每个公司的重复日期的最新日期,请参阅GROUPWISE MAXIMUM手册中的教程