首先我们看下这张表title2,和title3 是重複的我们的目标就是要找到他们然后删除他们。
首先是找到不是他们的id
这里使用了min和group by相结合可以试试用max, 这样就是把id 2和3的作为要删除嘚对象了假设我们这边的需求是保留旧的文章,就用min
那么是他们的id就再用一个子查询即可
要删除他们delete 加子查询即可
通常情况下一个我们在做一个產品的时候,一开始可能由于设计考虑不周或者程序写的不够严谨某个字段上的值产生重复了,但是又必须去掉这个时候就稍微麻烦叻一点,直接加一个 UNIQUE KEY
肯定是不行了因为会报错。
现在我们来采用一种变通的办法,不过可能会丢失一些数据 :)
在这里我们设定一个表,其结构如下:
原来表中的数据假定有以下几条:
3、创建唯一索引并且修改 `name` 字段的类型为 BINARY CHAR
区分大小写
现在来看看新的表结构:
4、把数据導回去,在这里有两种选择:新的重复记录替换旧的记录,只保留最新的记录
或者是 新的记录略过只保留最旧的记录
上面是采用 REPLACE
的方式,可以看到导入过程中删掉了两条数据,结果验证确实是 新的重复记录替换旧的记录只保留最新的记录
。
看到了吧确实是 新的记錄略过,只保留最旧的记录
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。