SQL查询将excel表中的列添加到mysql表中?
问题描述:
mySQL数据库中的表格与Excel表格中的表格相同。但是,该表有一个额外的列,我希望在MySQL表中添加。SQL查询将excel表中的列添加到mysql表中?
列在表说ABC:ID,姓名,出生日期 列在表说PQR:ID,姓名,出生日期,性别
现在,我希望从Excel工作表中的性别栏添加到与我的表没有丢掉表格的特定ID。
LOAD DATA INFILE '/path/pqr.csv'
INTO TABLE abc
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
但是,这将用于新的导入,而不是更新表。
答
列在表说ABC:ID,姓名,出生日期
列在表说PQR:ID,姓名,出生日期,性别
创建临时表temporary
,将数据导入这个表,然后改变abc
加入新的列gender
,然后使用temporary
更新abc
中的性别,最后删除temporary
。
CREATE TABLE temporary (id int, name varchar(100), dob date, gender char(1), PRIMARY KEY (id));
LOAD DATA INFILE '/path/pqr.csv'
INTO TABLE temporary
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
ALTER TABLE abc ADD COLUMN (gender varchar(1));
UPDATE abc
SET gender = (SELECT gender FROM temporary WHERE temporary.id = abc.id);
-- some DBs need a FROM clause, use either one which works
UPDATE abc
SET gender = (SELECT gender FROM temporary WHERE temporary.id = abc.id)
FROM temporary;
SELECT * FROM abc;
DROP TABLE temporary;
不知道您正在使用哪个DBMS,答案不能更具体。
您应该重新创建SQL端的表,然后将文件加载到临时表中,然后使用从临时表到事实表的insert into语句。希望有所帮助 - 在不删除的情况下,直到您开始使用列 – jimmy8ball
的那一天您才有一组空白的行,或者您可以更改表 - 添加列,为包含记录标识和性别值的另一个表创建阶段,然后运行一套set update set语句,用于根据临时表中的ID设置性别值 – jimmy8ball