美文网首页
mysql删除重复数据

mysql删除重复数据

作者: 陈大胃 | 来源:发表于2021-06-15 15:04 被阅读0次

    数据插入重复,想删除新插入的重复数据,保留原数据。

    delete from bankaccounts where id not in

                                  (select id from (

    select min(id)as idfrom bankaccountsGROUP BY AccountNo HAVING COUNT(AccountNo)>1 )as total );

    遇到的几个报错:

    1.java.sql.SQLException: You can't specify target table 'bankaccounts' for update in FROM clause

    错误提示:不能先将select出表中的某些值,再delete或update这个表(在同一语句中)。

    即delete是没法和查询同一张表一起操作的。

    解决办法就是嵌套一层子查询,再进行删除。

    2.嵌套一层子查询又遇到报错,Mysql错误Every derived table must have its own alias。

    这句话的意思是每个派生出来的表必须有一个自己的别名

    一般是在多表查询或者子查询的时候会出现这个错误,因为在嵌套查询中,子查询的结果是作为一个派生表给上一级进行查询,所以子查询的结果必须有一个别名。 在子查询后加个as total即可。

    相关文章

      网友评论

          本文标题:mysql删除重复数据

          本文链接:https://www.haomeiwen.com/subject/owuzeltx.html