Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql “问题是什么?”;以“结束”结尾的字段;及;以“结束”结尾的行;?_Mysql_Sql_Database_Csv - Fatal编程技术网

Mysql “问题是什么?”;以“结束”结尾的字段;及;以“结束”结尾的行;?

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

因此,我创建了一个名为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
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
设置为反斜杠以外的其他方式会有所帮助。