Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.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_Csv - Fatal编程技术网

无法在mysql数据库中加载“\”字符

无法在mysql数据库中加载“\”字符,mysql,csv,Mysql,Csv,我无法将CSV文件中的“\”字符加载到mysql db版本6.1中 假设下面是转换为CSV的excel表格 ------------------------------ ColumnHeader1 | ColumnHeader2 | ------------------------------ BA\ |Pune | ------------------------------- Mysql命令: LOAD DATA LOCAL INFILE 'D:\\

我无法将CSV文件中的“\”字符加载到mysql db版本6.1中

假设下面是转换为CSV的excel表格

------------------------------
ColumnHeader1 | ColumnHeader2 |
------------------------------
BA\           |Pune           |
-------------------------------
Mysql命令:

LOAD DATA LOCAL INFILE 'D:\\mydatafile.csv' 
INTO TABLE mydb.mytable FIELDS TERMINATED BY ',' 
LINES TERMINATED BY '\r\n' 
IGNORE 1 LINES
(ColumnHeader1,ColumnHeader2);
当我在上表中运行select查询时,我得到了与上表不同的以下输出。这在mysql 6.1中运行得非常好。现在升级到6.2会产生问题

------------------------------
ColumnHeader1 | ColumnHeader2 |
------------------------------
BAPune           |null        |
-------------------------------

尝试将csv文件中的所有\替换为\\,看看会发生什么

反斜杠是SQL语句中字符串中的MySQL转义字符,因此要指定文字反斜杠,必须为要解释为单个反斜杠的值指定两个反斜杠。转义序列'\t'和'\n'分别指定制表符和换行符。

您的\不是由mysql转义的,您需要转义它才能将其保存在数据库中。 如果你只想用你的手或者只想用mysql,那么你有两种选择:要么用手替换,这是一个穷人进入\\

或者您可以使用LIKE模式[ESCAPE'ESCAPE\u character'],从而允许您转义任何您想要的内容。

尝试在查询LIKE中添加以“,”结尾的字段

LOAD DATA LOCAL INFILE 'D:\\mydatafile.csv' 
INTO TABLE mydb.mytable FIELDS TERMINATED BY ',' 
FIELDS TERMINATED BY ',' ESCAPED BY '\\'
LINES TERMINATED BY '\r\n' 
IGNORE 1 LINES
(ColumnHeader1,ColumnHeader2);

我不可能在不同的牢房里重放50万条记录。同样,它在6.1版本中工作得非常完美。怎么会呢?这只是一个文本文件perl-pi-e's/\\\/\\\\\\/g'mydatafile.csvYes将数据中的所有'\'替换为'\\'并添加由'\\'转义的内容对我来说是有效的。然后接受给定的解决方案,只需单击一下就行了。似乎我不得不将mysql从6.2降级到6.1,这与相同的数据和sql查询完美地结合在一起。