zoukankan      html  css  js  c++  java
  • mysql 去除重复数据 语句

    纠结的过程:

    mysql> select * from role group by role_name,deleted;
    +---------+-----------+---------+
    | role_id | role_name | deleted |
    +---------+-----------+---------+
    | 2       | xue       | 12      |
    | 1       | zhao      | 12      |
    | 3       | zhao      | 13      |
    +---------+-----------+---------+
    3 rows in set
    mysql>  delete from role c where c.role_id not in (select b.role_id from role c group by role_name,deleted);
    1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'where c.role_id not in (select b.role_id from role c group by role_name,deleted)' at line 1
    
    mysql>  select *  from role c where c.role_id not in (select b.role_id from role b 
     group by role_name,deleted);
    +---------+-----------+---------+
    | role_id | role_name | deleted |
    +---------+-----------+---------+
    | 4       | xue       | 12      |
    +---------+-----------+---------+
    1 row in set
    
    
    mysql>  delete from role c where c.role_id not in (select b.role_id from role b  group by role_name,deleted);
    1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'where c.role_id not in (select b.role_id from role b  group by role_name,deleted' at line 1
    
    mysql>  delete from role  where role_id not in (select b.role_id from role b  group by role_name,deleted);
    1093 - You can't specify target table 'role' for update in FROM clause
    
    mysql>  delete from role  where role_id not in (select role_id from role   group by role_name,deleted);
    1093 - You can't specify target table 'role' for update in FROM clause
    
    mysql>  delete from role  where not role_id  in (select role_id from role   group by role_name,deleted);
    1093 - You can't specify target table 'role' for update in FROM clause
    mysql>  delete from role  where role_id not in (select t.role_id from role t  group by role_name,deleted);
    1093 - You can't specify target table 'role' for update in FROM clause
    mysql>  delete from role  where role_id not in (select t.role_id from role t  group by t.role_name,t.deleted);
    1093 - You can't specify target table 'role' for update in FROM clause
    mysql>  delete from role  where role_id NOT IN (select t.role_id from role t  group by role_name,deleted);
    1093 - You can't specify target table 'role' for update in FROM clause
    mysql>  delete from role  where role_id NOT IN select *  from ( (select t.role_id from role t  group by role_name,deleted));
    1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'select *  from ( (select t.role_id from role t  group by role_name,deleted))' at line 1
    mysql>  delete from role  where role_id NOT IN ( select *  from ( (select t.role_id from role t  group by role_name,deleted)));
    1248 - Every derived table must have its own alias
    
    mysql>  delete from role  where role_id NOT IN ( select *  from  ( select t.role_id from role t  group by t.role_name,t.deleted));
    1248 - Every derived table must have its own alias

    终于通了:

    mysql>  delete from role  where role_id NOT IN ( select *  from  ( select t.role_id from role t  group by t.role_name,t.deleted) t1);
    Query OK, 1 row affected


    参考:
    mysql比较作呕的一个delete in操作
    http://www.educity.cn/wenda/594988.html

  • 相关阅读:
    Spring事务隔离级别、传播机制、实现方式
    包装类缓存
    Object类详解
    String类详解
    自己实现一个Map
    锁机制
    各容器区别比较
    Map-CurrentHashMap
    Javascript中bind()方法的使用与实现
    this、new、call和apply的相关问题
  • 原文地址:https://www.cnblogs.com/xfly/p/3881508.html
Copyright © 2011-2022 走看看