使用命令行客户端格式化从excel到mysql的输入

时间:2013-08-28 09:10:38

标签: mysql excel csv

我想使用命令行客户端将数据从excel导入mysql数据库。 这是我的csv文件的构建示例:

Name 1 | 1 | 2 | 3 |
Name 2 | 1 | 2 | 3 |
Name 3 | 1 | 2 | 3 |

我正在使用代码:

LOAD DATA LOCAL INFILE 'path to file.csv'
  INTO TABLE table_name
  FIELDS TERMINATED BY ','
  LINES TERMINATED BY '\n';

我得到“查询正常”,使用此代码,表格上的格式应该与csv文件完全一样,但我得到了这个结果:

| NULL | NULL | NULL | 
| NULL | NULL | NULL |
| NULL | NULL | NULL |

有什么问题?

2 个答案:

答案 0 :(得分:0)

好像你用过'|'在您的csv文件中作为分隔符而不是 逗号,尝试代码

`LOAD DATA LOCAL INFILE 'path to file.csv' INTO TABLE table_name FIELDS TERMINATED BY '|'LINES TERMINATED BY '\n';`

答案 1 :(得分:0)

假设以下表格结构:

CREATE TABLE `table_name` (
  `name` VARCHAR(20) CHARACTER SET utf8 DEFAULT NULL,
  `value1` INT(11) DEFAULT NULL,
  `value2` INT(11) DEFAULT NULL,
  `value3` INT(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

和文件,csv-file.csv:

Name 1,1,2,3
Name 2,1,2,3
Name 3,1,2,3

当我运行声明时:

mysql> LOAD DATA INFILE '/path/csv-file.csv'
       -> INTO TABLE `table_name`
       -> FIELDS TERMINATED BY ','
       -> LINES TERMINATED BY '\n';

mysql> SELECT `name`, `value1`, `value2`, `value3`
       FROM `table_name`;

获得以下结果:

+--------+--------+--------+--------+
| name   | value1 | value2 | value3 |
+--------+--------+--------+--------+
| Name 1 |      1 |      2 |      3 |
| Name 2 |      1 |      2 |      3 |
| Name 3 |      1 |      2 |      3 |
+--------+--------+--------+--------+
3 rows in set (0.00 sec)