美文网首页
一条sql对mysql数据库中重复记录去重

一条sql对mysql数据库中重复记录去重

作者: 老季的私密空间 | 来源:发表于2017-12-05 11:13 被阅读0次

前几天接到一个数据库去重的需求,大概意思是这样的:我们数据库中有一个存储用户第三方信息的表,因为之前程序漏洞导致记录中一个用户对应了多个第三方信息。现在需要保证一个用户ID只能有一条记录,对于多条记录的用户ID保留最近绑定的记录。

数据库表结构

user_thirdpart` (

USER_ID int(11) NOT NULL COMMENT,

THIRD_MESSAGE text CHARACTER,

GMT_CREATE timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP

解决方法

百度了各种方法之后还是后未能成功,最终结合网上的方法解决。具体sql如下

DELETE user_thirdpart 
FROM  user_thirdpart, 
 (
        SELECT
            user_id,
            max(gmt_create) gmt_create
        FROM
            user_thirdpart
        GROUP BY
            user_id
        HAVING
            count(1) > 1
    ) temp
WHERE
    user_thirdpart.user_id = temp.user_id 
    AND user_thirdpart.gmt_create < temp.gmt_create

sql解析:

  • ( SELECT user_id, max(gmt_create) gmt_create FROM user_thirdpart GROUP BY user_id HAVING count(1) > 1) temp 从表中查询出多次出现的user_id记录,并返回创建时间最大的一条记录作为临时表 temp
  • where user_thirdpart.user_id = temp.user_id AND user_thirdpart.gmt_create < temp.gmt_create关联判断重复条件的字段
  • 删除user_thirdpart中 where条件满足的记录

相关文章

  • 一条sql对mysql数据库中重复记录去重

    前几天接到一个数据库去重的需求,大概意思是这样的:我们数据库中有一个存储用户第三方信息的表,因为之前程序漏洞导致记...

  • MySQL源码分析之SQL函数执行

    1.MySQL中执行一条SQL的总体流程 2.SQL函数执行过程 1.MySQL中执行一条SQL的总体流程 一条包...

  • oracle查询重复数据方法

    SQL重复记录查询 (一) 1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 2、删除...

  • 12.1KOA mysql 数据库

    mysql 数据库 安装 mysql 模块 使用数据库连接执行 SQL 语句 使用数据库连接池执行 SQL 语句

  • 爬虫去重策略

    1、将url保存到数据库中,检查时在数据库中查找。效率太低,频繁的切换内外存。使用mysql做去重,对url地址进...

  • MySql常用查询语句,字段查重

    字段查重 查找所有重复标题的记录: 一、查找重复记录1、查找全部重复记录 2、过滤重复记录(只显示一条) 注:此处...

  • MySQL、Oracle、Sql Server数据库JDBC的连

    MySQL、Oracle、Sql Server数据库JDBC的连接方式 MySQL、Oracle、Sql Serv...

  • sql快速入门教程1简介

    sql快速入门教程1简介 sql教程2数据库和SQL简介 sql教程3 MySQL介绍 sql教程4 MySQL ...

  • sql教程3 MySQL介绍

    sql快速入门教程1简介 sql教程2数据库和SQL简介 sql教程3 MySQL介绍 sql教程4 MySQL ...

  • sql教程4 MySQL SELECT

    sql快速入门教程1简介 sql教程2数据库和SQL简介 sql教程3 MySQL介绍 sql教程4 MySQL ...

网友评论

      本文标题:一条sql对mysql数据库中重复记录去重

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