您的位置:首页 > 数据库 > MySQL

删除表中重复数据;MySQL 某张表的查询结果不能作为此表删除、更新语句的where条件子句

2018-07-12 15:07 761 查看

ORACLE : SELECT max(rowId) from table T  group by "重复字段"; max min distinct 什么的无所谓。

所有数据第一条(即不包含重复数据),结合 rowId not in;

eg: DELETE FROM DY_REDUCE WHERE rowid not in(Select min(rowid) from DY_REDUCE group by mainID);


MySQL : 同理,但略有不同。(行号比较麻烦用唯一性约束字段就好)

MySQL delete、update语句 where 子句中 若包含 Select from 同一张表时,会报错。即某张表的查询结果不能作为此表删除、更新语句的where条件子句。

eg:DELETE FROM DY_REDUCE WHERE uuid not in(Select min(uuid) from DY_REDUCE group by mainID );

log:You can't specify target table 'DY_REDUCE' for update in FROM clause

解决办法:在子句中再套一层,随便取个别名

DELETE FROM DY_REDUCE WHERE uuid not in(SELECT * FROM(Select min(uuid) from DY_REDUCE group by mainID)a );


阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐