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

  • 相关阅读:
    hdu 3714
    sql 函数 DATEADD 使用
    mvc的IIS 配置问题 runAllManagedModulesForAllRequests 与 HtmlFileHandler
    移动端日历控件 mobiscroll 的简单使用、参数设置
    sql中判断是否存在某个对象
    SQLServer中的变量:局部变量,全局变量
    键盘对照表
    [PyQt]在Windows系统中安装Eric6
    [Python]使用QRCode生成彩色二维码
    [PyQt]PyQt5连接SQL Server数据库,并读取所有数据库名称
  • 原文地址:https://www.cnblogs.com/xfly/p/3881508.html
Copyright © 2011-2022 走看看