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

  • 相关阅读:
    笔记-归并排序
    Repeated Substring Pattern
    Assign Cookies
    Number of Boomerangs
    Paint Fence
    Path Sum III
    Valid Word Square
    Sum of Two Integers
    Find All Numbers Disappeared in an Array
    First Unique Character in a String
  • 原文地址:https://www.cnblogs.com/xfly/p/3881508.html
Copyright © 2011-2022 走看看