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

  • 相关阅读:
    25. Spring Boot与缓存 JSR-107、Spring缓存抽象
    24. Spring Boot 自定义Starter (未整理,待续)
    UGUI 锚点
    UGUI Button控件
    UGUI Image控件
    UGUI Text控件
    Unity 角色复活和重新开始游戏
    Unity 读取Excel
    IOS使用C#预处理命令,多种SDK共存
    Unity扩展 四种Menu的区别
  • 原文地址:https://www.cnblogs.com/xfly/p/3881508.html
Copyright © 2011-2022 走看看