首先,根据我的想法,这是非常简单的,上面的SQL语句


删除从zqzrdp在电话(选择min(dpxx_id)从zqzrdp组);



执行,犯错误!~!~



唯一的例外是,你不能在from子句中指定目标表的更新。

一步一步地走是困难的。它伤害。

以下是网友写的,同样是坑爹的代码,我不能在机器上运行。

1。需要删除的记录和将保留的记录。


选择张,a.subject a.receiver,从test1左连接(选择c.subject,c.receiver,max(入境)报价从test1 C在状态= 0组接收器,主体具有计数(1)> 1)B对<<家在张a.subject = b.subject和a.receiver = b.receiver和张<家



2。删除重复记录,只有一个记录被保留。注意主题,接收者将被索引,否则它将是慢的。


删除从test1,(选择c.subject,c.receiver,max(入境),作为入境,从test1。




三.在查找表中多余的重复记录,和重复的记录是由一个单一的现场判断(只)


选择*从人民那里只在(选择只从人组)> 1)




4。删除表中多余的重复记录,并重复记录是由一个单一的现场判断(只),只有最小的rowid记录。


从人民那里只删除(选择只从人,人,人),1 。



5。删除多余的重复记录(多个字段)表中,只有最小的rowid记录


删除表一个(a.peopleid,a.seq)在(选择只,SEQ SEQ,简历1)。它也被称为正确的方式。





使用命令完成这件事似乎是懒惰的。好像不太清楚。这仍然是一个事实,一步一步来。我们的想法是先创建一个临时表,然后比较临时表中的数据,然后删除主表中的数据。


tablename表添加自动识别国际auto_increment不空;

创建表TMP选择min(自动识别)作为自动识别字段组。

创建表TMP2选择表名。*字段,TMP在tablename.autoid = tmp.autoid;

滴表;

重命名表TMP2来表;