MAN*_*EET 99 mysql csv import load-data-infile
我将一些包含20000行的数据从CSV文件导入到Mysql中.
CSV中的列与MySQL表的列的顺序不同.如何自动分配与Mysql表列对应的列?
当我执行
LOAD DATA INFILE'abc.csv' INTO TABLE abc
Run Code Online (Sandbox Code Playgroud)
此查询将所有数据添加到第一列.
请建议将数据导入Mysql的自动语法.
Sah*_*hah 159
您可以使用LOAD DATA INFILE命令将csv文件导入表中.
检查此链接MySQL - LOAD DATA INFILE.
LOAD DATA LOCAL INFILE 'abc.csv' INTO TABLE abc
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES
(col1, col2, col3, col4, col5...);
Run Code Online (Sandbox Code Playgroud)
Sun*_*S.M 48
在导入文件之前,您必须准备以下内容:
假设我们有以下表格:
使用以下查询创建表:
CREATE TABLE IF NOT EXISTS `survey` (
`projectId` bigint(20) NOT NULL,
`surveyId` bigint(20) NOT NULL,
`views` bigint(20) NOT NULL,
`dateTime` datetime NOT NULL
);
Run Code Online (Sandbox Code Playgroud)
您的CSV文件必须正确格式化,例如看到附加图像:
如果一切都很好..请执行以下查询从CSV文件加载数据:
注意:请添加CSV文件的绝对路径
LOAD DATA INFILE '/var/www/csv/data.csv'
INTO TABLE survey
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES;
Run Code Online (Sandbox Code Playgroud)
如果一切都做了.您已成功将数据从CSV导出到表格
cki*_*kim 47
您可能需要设置FIELDS TERMINATED BY ','或者分隔符恰好是什么.
对于CSV文件,您的语句应如下所示:
LOAD DATA INFILE 'data.csv' INTO TABLE tbl_name
FIELDS TERMINATED BY ',' ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES;
Run Code Online (Sandbox Code Playgroud)
Md.*_*din 15
句法:
LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL]
INFILE 'file_name' INTO TABLE `tbl_name`
CHARACTER SET [CHARACTER SET charset_name]
FIELDS [{FIELDS | COLUMNS}[TERMINATED BY 'string']]
[LINES[TERMINATED BY 'string']]
[IGNORE number {LINES | ROWS}]
Run Code Online (Sandbox Code Playgroud)
看这个例子:
LOAD DATA LOCAL INFILE
'E:\\wamp\\tmp\\customer.csv' INTO TABLE `customer`
CHARACTER SET 'utf8'
FIELDS TERMINATED BY ',' ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES;
Run Code Online (Sandbox Code Playgroud)
在数据库中在1分钟内插入超过7000000条记录(超高速查询计算)
mysqli_query($cons, '
LOAD DATA LOCAL INFILE "'.$file.'"
INTO TABLE tablename
FIELDS TERMINATED by \',\'
LINES TERMINATED BY \'\n\'
IGNORE 1 LINES
(isbn10,isbn13,price,discount,free_stock,report,report_date)
SET RRP = IF(discount = 0.00,price-price * 45/100,IF(discount = 0.01,price,IF(discount != 0.00,price-price * discount/100,@RRP))),
RRP_nl = RRP * 1.44 + 8,
RRP_bl = RRP * 1.44 + 8,
ID = NULL
')or die(mysqli_error());
$affected = (int) (mysqli_affected_rows($cons))-1;
$log->lwrite('Inventory.CSV to database:'. $affected.' record inserted successfully.');
Run Code Online (Sandbox Code Playgroud)
RRP和RRP_nl和RRP_bl不在csv中,但是我们计算出来并在插入之后.
| 归档时间: |
|
| 查看次数: |
364219 次 |
| 最近记录: |