0

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

姓名 1 | 1 | 2 | 3 |
姓名 2 | 1 | 2 | 3 |
姓名 3 | 1 | 2 | 3 |

我正在使用代码:

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

我得到“查询 OK”,并且使用此代码,表格上的格式应该几乎与 csv 文件完全相同,但我得到了这个结果:

| 空 | 空 | 空 |
| 空 | 空 | 空 |
| 空 | 空 | 空 |

怎么了?

4

2 回答 2

0

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

`LOAD DATA LOCAL INFILE 'path to file.csv' INTO TABLE table_name FIELDS TERMINATED BY '|'LINES TERMINATED BY '\n';`
于 2013-08-28T09:44:15.157 回答
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)
于 2013-08-28T10:39:52.440 回答