[英]mysql loading csv file plus additional columns into a table
我正在阅读有关如何将 csv 文件加载到表中的文章和线程,但我还需要添加其他列。 这可能吗?
下面是我的表:
+-----------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+----------------+
| uid | int(11) | NO | PRI | NULL | auto_increment |
| lid | int(11) | YES | | NULL | |
| uDate | date | YES | | NULL | |
| cID | int(11) | YES | | NULL | |
| active | int(1) | YES | | 0 | |
| user_ID | varchar(32) | YES | | NULL | |
上面是我需要传入的附加列,下面是 CSV 文件中的所有列
| fName | varchar(32) | YES | | NULL | |
| lName | varchar(32) | YES | | NULL | |
| lAddress1 | varchar(64) | YES | | NULL | |
| lAddress2 | varchar(16) | YES | | NULL | |
| lCity | varchar(64) | YES | | NULL | |
| lState | varchar(64) | YES | | NULL | |
| lZip | varchar(10) | YES | | NULL | |
| lPhone | varchar(15) | YES | | NULL | |
| lEmail | varchar(96) | YES | | NULL | |
| field1 | varchar(32) | YES | | NULL | |
| field2 | varchar(64) | YES | | NULL | |
| field3 | varchar(64) | YES | | NULL | |
| regCode | varchar(32) | YES | | NULL | |
+-----------+-------------+------+-----+---------+----------------+
并加载文件:
LOAD DATA LOCAL INFILE '/path/to/file/myfile.csv' INTO TABLE myTable
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
(fName,lName,lAddress1,lAddress2,lCity,lState,lZip,field1,field2,field3,regCode) ;
我怎样才能传入lid,uDate,cID,active,user_ID
?
这些字段是:
lid = listID
cID = customerID
active = defaults to inactive, but entrycan be later activated
user_ID = initially null, but later updated with a properly assigned userID.
在我的 php 脚本中,它们已经被收集为$lid,$cID,0,$userID
您可以添加SET
子句来设置除 CSV 中的列之外的其他列。
$stmt = $conn->prepare("
LOAD DATA LOCAL INFILE '/path/to/file/myfile.csv' INTO TABLE myTable
FIELDS TERMINATED BY ','
ENCLOSED BY '\"'
LINES TERMINATED BY '\r\n'
(fName,lName,lAddress1,lAddress2,lCity,lState,lZip,field1,field2,field3,regCode)
SET lid = ?, cID = ?, active = 0, user_id = ?");
$stmt->bind_param("iis", $lid, $cID, $userID);
$stmt->execute();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.