无法在mysql数据库中加载“\”字符
我无法将CSV文件中的“\”字符加载到mysql db版本6.1中 假设下面是转换为CSV的excel表格无法在mysql数据库中加载“\”字符,mysql,csv,Mysql,Csv,我无法将CSV文件中的“\”字符加载到mysql db版本6.1中 假设下面是转换为CSV的excel表格 ------------------------------ ColumnHeader1 | ColumnHeader2 | ------------------------------ BA\ |Pune | ------------------------------- Mysql命令: LOAD DATA LOCAL INFILE 'D:\\
------------------------------
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查询完美地结合在一起。