如果是你猜想的那种情况,你在入库的时候延迟10秒或几秒看看就知道了.....你的语句应该没有错的.
mssql删除重复的:
delete from table1
where id in (select min(id) from table1
group by a, b,c having count(*) > 1)
不知道mysql 有没有这种写法.
mssql删除重复的:
delete from table1
where id in (select min(id) from table1
group by a, b,c having count(*) > 1)
不知道mysql 有没有这种写法.
然后把这个字段加上UNIQUE( 'FieldName' )属性?读出的时候可以用list( $a, $b, $c ) = explode( '|', $FieldValue )来做呢?
group by a, b,c) as table2
where table1.a = table2.a
AND table1.b = table2.b
AND table1.c = table2.c
AND table1.id <> table2.minid 这里返回的 能在iN里面实现嘛?
但这样还是有问题:
1.经常查询所有的记录并删除费时间,影响其他人的查询速度,毕竟数据库里面的记录已经太多,而速度在任何时刻都很重要;
2.主键id,auto_increment,id数值即为记录的条数,但执行删除语句后重复记录被删,有些id的数值就为空了。最后一个id并不是总的记录条数了。比如,本来是1,2,3,4,5,现在只剩下1,3,4,5 记录重复的问题根源还没有搞清楚,执行sql语句删除重复记录也只是亡羊补牢,希望各位高手继续畅所欲言,帮忙实现在采集的时候同样的记录就只有一条入库。谢谢。
或者采集的时候把SQL语句集中在最后再执行插入 这样还省数据库资源呢