当我在从文件读取数据插入到MYSQL数据库时, 遇到一个问题.数据库col1  col2
----  ----
1      A
2      B
3      C而文件1   D
2   B
3   D
4   D
最终数据库的结果为
col1  col2
----  ----
1     D
2     B
3     D
4     D
这里col1不是主键,也不是唯一索引. 有什么方法可以解决吗?

解决方案 »

  1.   

    先导到一个表里面  然后left join 
      

  2.   

    如果您指定了ON DUPLICATE KEY UPDATE,并且插入行后会导致在一个UNIQUE索引或PRIMARY KEY中出现重复值,则执行旧行UPDATE。例如,如果列a被定义为UNIQUE,并且包含值1,则以下两个语句具有相同的效果:mysql> INSERT INTO table (a,b,c) VALUES (1,2,3)
        -> ON DUPLICATE KEY UPDATE c=c+1;
     
    mysql> UPDATE table SET c=c+1 WHERE a=1;
    为什么不能把COL设置为唯一索引呢?
    修改一下结构,处理起来就简单很多了。
      

  3.   

    使用REPLACE关键字即可。LOAD DATA INFILE '文件_name'
    REPLACE
        INTO TABLE tbl_name
    ...MySQL官方文档 http://dev.mysql.com/doc/refman/5.1/zh/index.html
      

  4.   

    因为这个列表在我的系统中是没什么意义的, 而数据是从别的系统定期dump出来的数据, 在他们系统和导入数据的时候给我的一个id值, 而且数据量也比较大, 我怕在更新表的时候影响性能.所以没加索引.
    但是... 最终还是加索引了, 怕以后也会出这种问题.