$this->db->query("LOAD DATA LOCAL INFILE '".$file_path."'
INTO TABLE table1
CHARACTER SET utf8mb4
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '\"'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES
(Email,Jurisdiction_Parish,Jurisdiction_Ward,Jurisdiction_Precinct,Personal_FirstName,
Personal_MiddleName,Personal_LastName,Personal_NameSuffix,Residence_HouseNumber,Residence_HouseFraction,Residence_StreetDirection,
Residence_StreetName,Residence_ApartmentNumber,Residence_City,Residence_State,Residence_ZipCode5,Residence_ZipCode4,Mail_Address1,
Mail_Address2,Mail_City,Mail_State,Mail_ZipCode5,Mail_ZipCode4,Mail_Country,Personal_Sex,Personal_Race,Registration_PoliticalPartyCode,
Personal_Age,Registration_VoterStatus,Registration_Date,Registration_Number,Personal_Phone,LastVoted,Residence_WalkListOrder,
Favorability,Yard_Sign,Comments,Personal_NameOrder,voted,Rating,Custom_Variable1,Custom_Variable2,Custom_Variable3)
SET cid =".$cid.", csvsheet_id=".$csvsheet_id
);
上面的代码用于将csv的数据插入数据库,但我想从csv更新数据库的现有记录。因此,我如何修改查询,以便它将用于更新记录。
2条答案
按热度按时间3lxsmp7m1#
必须为字段定义主键或唯一键,这些字段负责记录的相等性
你必须加上
REPLACE
关键字输入LOAD INFILE
陈述daolsyd02#
我使用下面的代码更新数据库的现有记录。
但问题是在我的csv文件中只有两列。当我运行查询时,它更新了记录(仅投票列),但其他列已被清空。是否有必要将所有列名称与数据一起提供。。??