Mysql “问题是什么?”;以“结束”结尾的字段;及;以“结束”结尾的行;?
因此,我创建了一个名为specs的mysql表,并希望将一个csv文件导入该表Mysql “问题是什么?”;以“结束”结尾的字段;及;以“结束”结尾的行;?,mysql,sql,database,csv,Mysql,Sql,Database,Csv,因此,我创建了一个名为specs的mysql表,并希望将一个csv文件导入该表 CREATE TABLE specs ( `Id` INT NOT NULL, `Brand` VARCHAR(40) NOT NULL, `Horsepower` INT NOT NULL, `Range` INT NOT NULL, PRIMARY KEY (Id) ); csv数据如下所示 ID\Brand\Horsepower\Range 1\Mercedes Benz\237\634
CREATE TABLE specs (
`Id` INT NOT NULL,
`Brand` VARCHAR(40) NOT NULL,
`Horsepower` INT NOT NULL,
`Range` INT NOT NULL,
PRIMARY KEY (Id)
);
csv数据如下所示
ID\Brand\Horsepower\Range
1\Mercedes Benz\237\634
2\Audi\345\567
3\Ford\190\456
4\BMW\278\547
5\Toyota\123\364
6\Fiat\90\289
7\Daihatsu\120\450
8\Jeep\500\670
9\Seat\119\289
10\Mitsubishi\78\410
这就是我导入数据的方式,但是表中充满了零。问题在哪里。我认为问题在于字段和行的结尾是
LOAD DATA LOCAL INFILE '/Users/anilyelin/Desktop/cars.csv'
INTO TABLE specs
FIELDS TERMINATED BY '\\'
LINES TERMINATED BY '\n'
IGNORE 1 ROWS
输出如下所示:
mysql> select * from specs;
+----+-------+------------+-------+
| Id | Brand | Horsepower | Range |
+----+-------+------------+-------+
| 1 | | 0 | 0 |
| 2 | | 0 | 0 |
| 3 | | 0 | 0 |
| 4 | | 0 | 0 |
| 5 | | 0 | 0 |
| 6 | | 0 | 0 |
| 7 | | 0 | 0 |
| 8 | | 0 | 0 |
| 9 | | 0 | 0 |
| 10 | | 0 | 0 |
+----+-------+------------+-------+
10 rows in set (0,00 sec)
您应该尝试用管道替换字段分隔符|
LOAD DATA LOCAL INFILE '/Users/anilyelin/Desktop/cars.csv'
INTO TABLE specs
FIELDS TERMINATED BY '|'
LINES TERMINATED BY '\n'
IGNORE 1 ROWS
您应该尝试用管道替换字段分隔符|
LOAD DATA LOCAL INFILE '/Users/anilyelin/Desktop/cars.csv'
INTO TABLE specs
FIELDS TERMINATED BY '|'
LINES TERMINATED BY '\n'
IGNORE 1 ROWS
一定要使用其他符号,而不是反斜杠“\
。如果未设置反斜杠转义,则可能
字段以“\”结尾(不太可能)。CSV未标准化,但即使如此,使用反斜杠作为分隔符也是非常罕见的。最好是让生成这个的人使用逗号或制表符来分隔它们。如果你做不到这一点,我将尝试@JoopEggen提到的NO\u backslax\u escape
sql模式,或者看看是否将escape by
设置为反斜杠以外的其他符号会有所帮助。一定要使用其他符号,而不是反斜杠“\。如果未设置反斜杠转义,则可能
字段以“\”结尾(不太可能)。CSV未标准化,但即使如此,使用反斜杠作为分隔符也是非常罕见的。最好是让生成这个的人使用逗号或制表符来分隔它们。如果你做不到这一点,我会尝试@JoopEggen提到的NO\u backslax\u escape
sql模式,或者看看是否将escape by
设置为反斜杠以外的其他方式会有所帮助。