根据列中的重复项从数据中删除整行

Req*_*iem 1 java mysql database duplicates

所以这是我的问题.我有一个巨大的数据文本文件,我需要通过显然使用java程序快速将所有这些数据输入到mySQL数据库中.我唯一的问题是,数据是由某个ID标识的.这些ID中的一些具有重复并且包含与彼此相同的所有信息.我想删除所有这些用于分类目的和清晰度.

最好的方法是什么?如果有人可以提供帮助,我会很感激!

谢谢.

Men*_*los 6

读取数据时有一个hashmap或hashset.检查ismap/hashset中是否存在id,如果是,则继续.否则输入set/map并插入.

抛开: hashmap和hashset之间的区别是hashset只接受值,而hashmap接受键值.但是,Hashset本身在内存中使用了一个hashmap,只是为值插入一个虚拟对象. 请参阅:HashMap和Hashtable之间的差异?

hashset示例:

    HashSet<Integer> distinctIds = new HashSet<Integer>();

    MyRowData rowdata;
    int rowID;

    while((rowdata = this.getRowData())!=null ) // or however you iterate over the rows using reader etc
    {
    rowID = rowdata.getRowID(); 

    if(!distinctIds.contains(new Integer(rowID)))
    {
      distinctIds.add(rowID);
      inertDataInMysql(rowdata); //however you insert your data here
      System.out.println("Adding " + rowID);
    }
    }
Run Code Online (Sandbox Code Playgroud)

您可以通过对许多行执行可交换插入来使用批量插入来进一步加速代码.看到: