mysql 数据去重

作者: 采菊东篱下 | 来源:发表于2017-12-06 16:01 被阅读50次

从excel中导入了一部分数据到mysql中,有很多数据是重复的,而且没有主键,需要按照其中已经存在某一列对数据进行去重。

添加主键

由于之前的字段中没有主键,所以需要新增一个字段,并且将其作为主键。

添加一个新的字段id,对id中的值进行递增操作,然后再设置为主键。

对id字段进行递增的赋值操作如下:

SET @r:=0;
UPDATE table SET id=(@r:=@r+1);

然后设置为主键即可。

去重

添加玩递增的id字段后,就可以对数据根据某个字段进行去重操作,策略就是保存id最小的那条数据。

DELETE FROM `table`
WHERE
`去重字段名` IN (
    SELECT x FROM
    (
        SELECT `去重字段名` AS x 
        FROM `table` 
        GROUP BY `去重字段名` 
        HAVING COUNT(`去重字段名`) > 1
    ) tmp0
)
AND 
`递增主键名` NOT IN (
    SELECT y FROM
    (
        SELECT min(`递增主键名`) AS y 
        FROM `table` 
        GROUP BY `去重字段名` 
        HAVING COUNT(`去重字段名`) > 1
    ) tmp1
)

相关文章

  • mysql 数据去重

    从excel中导入了一部分数据到mysql中,有很多数据是重复的,而且没有主键,需要按照其中已经存在某一列对数据进...

  • 爬虫去重策略

    数据库去重MySQL 有唯一字段可以去重(这不是数据库去重的唯一方法),但是这种太过依赖MySQL,会导致 MyS...

  • mysql数据 sql去重

    查询出表中重复数据 select word,max(id) mid from test group by word...

  • mysql查询数据去重

    1、使用distinct去重(适合查询整张表的总数) 有多个学校+教师投稿,需要统计出作者的总数 每个作者都投稿很...

  • ubuntu使用redis和mysql前的环境配置

    现在我最常用的就是redis和mysql。redis存储单一数据,进行数据的去重。mysql存储结构型数据,进行数...

  • MySQL 冷门技术总结

    1.mysql 空间位置计算 查询无限分类所有父级 按条件汇总,聚合,去重统计各个数据 mysql查看进程

  • mysql,sqlserver数据库去重

    mysql 找重复行 b. 方法:☆根据dname分组,查找出deptno最小的。然后再查找deptno不包含刚才...

  • mysql字符串区分大小写的问题

    背景:最近有个需求,需要根据品牌名(varchar)去重数据。去重后发现数据有丢失。问题:MySql中字符串大小写...

  • Mysql 数据库去掉指定字段重复的数据

    mysql 数据库去掉指定字段重复的数据 问题背景: 目前遇到一个问题需要进行数据的去重。 现在想要name字段上...

  • 数据去重

    要求实现功能: 将File1和File2合并成一个文件,将重复的部分去除File1: File2: 结果: Dis...

网友评论

    本文标题:mysql 数据去重

    本文链接:https://www.haomeiwen.com/subject/odqlixtx.html