删除表中重复数据;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 );
相关文章推荐
- mysql在把子查询结果作为删除表中数据的条件,mysql不允许在子查询的同时删除原表数据
- MySQL专题5之MySQL插入数据、查询数据以及WHERE子句、UPDATE查询和DELETE语句
- Mysql查询重复数据并按条件删除重复行
- mysql中UPDATE更新数据where以另一个selecet子句为结果的1093错误
- mysql 以查询结果作为查询条件sql写法
- SQL优化 查询语句中,用 inner join 作为过滤条件和用where作为过滤条件的区别
- mysql中删除完全重复数据的准确SQL语句
- mysql 查询及 删除表中重复数据
- MySql-如何查询删除数据表重复记录
- 如何用sql语句查询和删除表中重复数据
- mysql给列的属性赋值,修改列属性,删除记录,删除所有记录,查询表的记录,去除重复的,总和查询,条件查询,模糊查询,关联查询,范围查询
- mysql 常用命令,连接数据库,查看建表语句,批量导入数据,批量更新数据,连接查询
- sql语句之查询与删除重复数据
- MySQL 自学笔记之:数据库查询 DQL(Data Query Lanuage)数据分类(where 子语句)
- Mysql 查询表中重复数据和删除表中重复的数据
- 1.利用android提高的的insert,query,update,deleteAPI与execSql,rawQuery函数执行原生的插入,查询,更新,删除语句操作花费时间的对比结果
- SQL 已更新或删除的行值要么不能使该行成为唯一行(sqlserver中有多行所有的列重复的数据,无法更新或删除问题)
- MySQL中查询后用查询结果当删除的判断条件,进行删除操作
- 查询和删除表中重复数据sql语句
- SQL语句--查询结果作为条件与另一张表进行条件查询