BEGIN DELETE TB FROM TableName TB WHERE TB.ID IN (SELECT MIN(ID) FROM TableName TB2 GROUP BY TB2.Column1,TB2.Column2,...TB2.ColumnN ) ); SET @Count = @@ROWCOUNT; END 这里使用了循环删除,并不是最优的方法,欢迎园友不吝批评指正. 其实还有一种方法是先查询重复的数据,然后在重复数据中保留一条. 下面用例子说明. 例如表City有如下的数
mysql中You can't specify target table for update in FROM clause错误的意思是说,不能先select出同一表中的某些值,再update这个表(在同一语句中). 例:DELETE from sys_org_relation where pOrgid in ( select porgId from sys_org_relation r where r.corgid='客户id' and relationType=1112 ) and
按分区删除: ALTER TABLE test1 DROP PARTITION (dt='2016-04-29'); 删除符合条件的数据: insert overwrite table t_table1 select * from t_table1 where XXXX; 其中xxx是你需要保留的数据的查询条件. 清空表: insert overwrite table t_table1 select * from t_table1 where 1=0; DROP TABLE [IF EXIST