在生产环境中,我们有的列是不允许出现重复值的,亦或是某两列不允许同时重复,但由于前端未做限制,或者没限制住,出现了单列重复值,或者两列本应组成唯一组合却也出现重复,这两种情况都是不允许的。现在由于前端应用限制不住,要做删除操作后,添加唯一索引,从数据库层面进行限制,以下是处理过程:

mysql> select * from aixuan1;

+----+------+-------+

| id | text | text1 |

+----+------+-------+

|  1 | aa   | 11    |

|  2 | bb   | 22    |

|  3 | cc   | 33    |

|  4 | cc   | 44    |

|  5 | bb   | 22    |

|  6 | aa   | 11    |

|  7 | dd   | 55    |

+----+------+-------+

7 rows in set (0.00 sec)

text字段全部重复的有:

mysql> select * from aixuan1 where text in (select text from aixuan1 GROUP BY text having count(*) > 1);

+----+------+-------+

| id | text | text1 |

+----+------+-------+

|  1 | aa   | 11    |

|  2 | bb   | 22    |

|  3 | cc   | 33    |

|  4 | cc   | 44    |

|  5 | bb   | 22    |

|  6 | aa   | 11    |

+----+------+-------+

6 rows in set (0.00 sec)

筛选出text单列重复值

select * from aixuan1 where `text` in (select `text` from aixuan1 GROUP BY `text` having count(*) > 1) and id not in (select min(id) from aixuan1 group by text having count(*)>1)

+----+------+-------+

| id | text | text1 |

+----+------+-------+

|  4 | cc   | 44    |

|  5 | bb   | 22    |

|  6 | aa   | 11    |

+----+------+-------+

3 rows in set (0.00 sec)

还可以这么查

mysql> select * FROM aixuan1 WHERE id NOT IN ( SELECT temp.mid FROM ( SELECT min(id) as mid FROM aixuan1 em GROUP BY em.text) AS temp);

+----+------+-------+

| id | text | text1 |

+----+------+-------+

|  4 | cc   | 44    |

|  5 | bb   | 22    |

|  6 | aa   | 11    |

+----+------+-------+

3 rows in set (0.00 sec)

筛选出text和text1同时重复的字段:

mysql> select * FROM aixuan1 WHERE id NOT IN ( SELECT temp.mid FROM ( SELECT min(id) as mid FROM aixuan1 em GROUP BY em.text,em.text1) AS temp);

+----+------+-------+

| id | text | text1 |

+----+------+-------+

|  5 | bb   | 22    |

|  6 | aa   | 11    |

+----+------+-------+

2 rows in set (0.00 sec)

查出来了,删就好办了,把select换成delete就Ok了,具体说保留大的id还是保留小的id那条,只要子查询的id函数用min(id)或者max(id)即可

mysql删除多列_MySQL删除单列重复或多列同时重复值并保留一条相关推荐

  1. mysql聚集索引可以多列吗_MySQL使用单列索引和多列索引

    讨论MySQL选择索引时单列单列索引和多列索引使用,以及多列索引的最左前缀原则. 1. 单列索引 在性能优化过程中,选择在哪些列上创建索引是最重要的步骤之一.可以考虑使用索引的主要有两种类型的列:在W ...

  2. mysql中如何删除空记录表_mysql删除表中的记录

    大家都知道,在MySQL中删除一个表中的记录有两种方法,一种是DELETE FROM TABLENAME WHERE... , 还有一种是TRUNCATE TABLE TABLENAME. DELET ...

  3. mysql删除学生记录_mysql删除重复记录语句,删除除了 id 号不同,其他都相同的学生冗余信息...

    /** 在Mysql下执行: delete from my.stu where id not in( select min(id) id from my.stu group by code ) ; 用 ...

  4. mysql 删除记录代码_mysql 删除记录时报错

    在sql命令行,删除一条记录时,发现一个很奇怪的错误 下面的语句是可以正常执行的: delete from t_mid_test_convention where convention_id=33; ...

  5. mysql删除外键_MySQL删除外键定义的方法

    MySQL外键在定以后,如果我们不再需要这个外键,可以进行删除操作,下面就为您介绍MySQL删除外键定义的方法,供您参考. 不知道大家有没有发现,在定义外键的时候articles.member_id外 ...

  6. mysql truncate 大表_MySQL删除大表时潜在的问题(drop table,truncate table)

    case1,删除大表时,因为清理自适应hash索引占用的内容导致的MySQL服务挂起 case2,大表的随意Drop或者truncate导致MySQL服务的挂起 按照本文中的结论就是 MySQL5.6 ...

  7. mysql 删除表 命令_MySQL 删除数据表

    MySQL 删除数据表 MySQL中删除数据表是非常容易操作的, 但是你再进行删除表操作时要非常小心,因为执行删除命令后所有数据都会消失. 语法 以下为删除MySQL数据表的通用语法: DROP TA ...

  8. mysql删除表里面姓王的人_MySQL 删除数据表_mysql删除数据表命令_DROP TABLE table_name...

    MySQL 删除数据表 MySQL中删除数据表是非常容易操作的, 但是你再进行删除表操作时要非常小心,因为执行删除命令后所有数据都会消失. 语法 以下为删除MySQL数据表的通用语法: DROP TA ...

  9. mysql中触发器 删除表数据_MySQL删除表数据

    在本教程中,您将学习如何使用MySQL DELETE语句从单个表中删除数据. 1. MySQL DELETE语句介绍 要从表中删除数据,请使用MySQL DELETE语句.下面说明了DELETE语句的 ...

最新文章

  1. ACM学习历程—HDU2476 String painter(动态规划)
  2. 剔除重复_微服务发生故障后,我是如何做到自动剔除异常的Server?
  3. python qtextedit设置光标位置_Python基础命令学习——就这一篇文章就够了
  4. 平均聚类系数_Python聚类算法的应用实例
  5. centos7安装最新稳定版nginx
  6. 斑马打印机链接数据库实现自动打印
  7. R语言绘制残差分析图
  8. Mac没有右Control的解决办法
  9. WEB前端大作业-速拍摄影服务响应式网页模板(HTML JS CSS))
  10. 人工神经元网络及其应用,现有的人工神经元网络
  11. 天龙八部服务器端Lua脚本系统
  12. JZ2440:yaffs2 格式根文件系统制作
  13. 如何将vectror<char>转换成string(C++)
  14. Direct3D基础——预备知识:表面
  15. ctrl +z / pause键 出现 [1]+ Stopped 怎么解决
  16. ubuntu20.04设置开机自动挂载
  17. 中文字符乱码:UTF8、GB2312
  18. 【Python】【难度:简单】Leetcode LCP 02. 分式化简
  19. Cocos Creator | 游戏优化之内存优化-资源管理
  20. APP金刚区的个人理解

热门文章

  1. 基于Springboot旅游网站管理系统、Springboot旅游线路和景点网站系统设计与实现 毕业设计开题报告
  2. JavaSE基础-概述
  3. 以代码寄相思,绘嫦娥之奔月,看程序猿过中秋
  4. 大神手机一周年:崛起了吗?
  5. app开发完成后,不能上架苹果商店(App Store)怎么办呢?
  6. Lesson 10: Configuration, Resource Usage and SchedulerFactory
  7. Git — 从远程库拉取
  8. C++智能指针模板类
  9. ASP .NET Core图片批量下载
  10. swagger实现example效果