MYSQL加载数据填充忽略重复行(自动增量作为主键)

MYSQL加载数据填充忽略重复行(自动增量作为主键),mysql,csv,load-data-infile,Mysql,Csv,Load Data Infile,我在使用LOAD DATA INFILE命令时遇到了一些问题,因为我想忽略数据库中已经存在的行 id |name |age -------------------- 1 |aaaa |22 2 |bbbb |21 3 |bbaa |20 4 |abbb |22 5 |aacc |22 "cccc","14" "ssee","33" "dddd","22" "aaaa","22" "abbb","22" "dhgg","34" "aacc","22"

我在使用LOAD DATA INFILE命令时遇到了一些问题,因为我想忽略数据库中已经存在的行

id  |name   |age
--------------------
1   |aaaa   |22
2   |bbbb   |21
3   |bbaa   |20
4   |abbb   |22
5   |aacc   |22
"cccc","14"
"ssee","33"
"dddd","22"
"aaaa","22"
"abbb","22"
"dhgg","34"
"aacc","22"
    LOAD DATA INFILE 'member.csv'
    INTO TABLE tbl_member
    FIELDS TERMINATED BY ','
           ENCLOSED BY '"'
           ESCAPED BY '"'
           LINES TERMINATED BY '\n'
    (name, age);
其中id是自动增量值。我拥有的csv文件包含以下数据:

id  |name   |age
--------------------
1   |aaaa   |22
2   |bbbb   |21
3   |bbaa   |20
4   |abbb   |22
5   |aacc   |22
"cccc","14"
"ssee","33"
"dddd","22"
"aaaa","22"
"abbb","22"
"dhgg","34"
"aacc","22"
    LOAD DATA INFILE 'member.csv'
    INTO TABLE tbl_member
    FIELDS TERMINATED BY ','
           ENCLOSED BY '"'
           ESCAPED BY '"'
           LINES TERMINATED BY '\n'
    (name, age);
我想忽略这些行

    "aaaa","22"
    "abbb","22"
    "aacc","22"
然后将剩下的上传到表中。我所做的将所有内容上传到表中的查询如下:

id  |name   |age
--------------------
1   |aaaa   |22
2   |bbbb   |21
3   |bbaa   |20
4   |abbb   |22
5   |aacc   |22
"cccc","14"
"ssee","33"
"dddd","22"
"aaaa","22"
"abbb","22"
"dhgg","34"
"aacc","22"
    LOAD DATA INFILE 'member.csv'
    INTO TABLE tbl_member
    FIELDS TERMINATED BY ','
           ENCLOSED BY '"'
           ESCAPED BY '"'
           LINES TERMINATED BY '\n'
    (name, age);

请帮我完成这项任务。。非常感谢..我尝试了许多链接,但都没有帮助:(

一种方法是使用临时表。上传到该表并使用SQL从临时表更新tbl_成员

INSERT INTO tbl_member
SELECT Field1,Field2,Field3,... 
FROM temp_table
WHERE NOT EXISTS(SELECT * 
             FROM tbl_member 
             WHERE (temp_table.Field1=tbl_member.Field1 and
                   temp_table.Field2=tbl_member.Field2...etc.)
            )

在“年龄”列上创建唯一索引,然后:

LOAD DATA INFILE 'member.csv'
IGNORE INTO TABLE tbl_member
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
ESCAPED BY '"'
LINES TERMINATED BY '\n'
(name, age);

您可以在多列上创建唯一索引。加载数据不会在所有这些列上插入与现有行匹配的行

e、 g。
ALTER TABLE tbl_member ADD UNIQUE UNIQUE_index(名称、年龄)

您只能有一个具有给定年龄的成员?使年龄唯一。不是这样,我的意思是表中的成员也可以在csv文件中使用,我想忽略这些成员并上载其余成员:)好的..我会尝试一下并发回:)非常感谢Hanx人..正是我需要的:)但是如果有任何直接的方法,请让我知道:)再次:)检查问题的正确答案,
忽略
关键字正是大多数人都在寻找的。干得好。我相信你指的是名称列上的唯一索引。朋友们好,我有一个包含7列的表,主键对我来说不太适合这个查询,因为它基于列和值,我想从csv文件中插入或更新一列;问题是Duplicate没有正确使用,如果可能,在这种情况下:如果a、B、C列中的第三行与它们的值匹配(已经存在一条记录),则进行更新;如果没有匹配项,请在队列中插入。