• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Mysql一些复杂的sql语句(查询与删除重复的行)

    1.查找重复的行

    SELECT * FROM blog_user_relation a WHERE (a.account_instance_id,a.follow_account_instance_id) 
    IN (SELECT account_instance_id,follow_account_instance_id FROM blog_user_relation GROUP BY account_instance_id, follow_account_instance_id HAVING
     COUNT(*) > 1)

    2.删除重复的行(保留一条)

    PS:因为mysql的delete,如果被删的表的where条件里有in,且in里面也有此表,那就删除不了。

    /*创建个临时表*/
    CREATE TABLE blog_user_relation_temp AS
    (
     SELECT * FROM blog_user_relation a WHERE 
     (a.account_instance_id,a.follow_account_instance_id) 
     IN ( SELECT account_instance_id,follow_account_instance_id FROM blog_user_relation GROUP BY account_instance_id, follow_account_instance_id HAVING COUNT(*) > 1)
     AND 
     relation_id 
     NOT IN (SELECT MIN(relation_id) FROM blog_user_relation GROUP BY account_instance_id, follow_account_instance_id HAVING COUNT(*)>1));
    
    /*删除数据*/
    DELETE FROM `blog_user_relation` WHERE relation_id IN (SELECT relation_id FROM blog_user_relation_temp);
    
    /*删除临时表*/
    DROP TABLE blog_user_relation_temp;

    您可能感兴趣的文章:
    • 使用SQL批量替换语句修改、增加、删除字段内容
    • SQL语句实现删除重复记录并只保留一条
    • 必须会的SQL语句(四) 数据删除和更新
    • 必须会的SQL语句(二) 创建表、修改表结构、删除表
    • 使用sql语句创建和删除约束示例代码
    • oracle使用sql语句增加字段示例(sql删除字段语句)
    • MySQL中批量删除指定前缀表的sql语句
    • SQL语句删除和添加外键、主键的方法
    • MySQL删除数据Delete与Truncate语句使用比较
    • 简单了解SQL常用删除语句原理区别
    上一篇:Mac下安装mysql5.7.18的详细步骤
    下一篇:mysql查询表里的重复数据方法
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Mysql一些复杂的sql语句(查询与删除重复的行) Mysql,一些,复杂,的,sql,语句,