MySQL LOAD DATA INFILE用逗号作为小数点分隔符

问题描述:

如何在数字使用逗号作为小数点分隔符时导入TSV文件?MySQL LOAD DATA INFILE用逗号作为小数点分隔符

LOAD DATA INFILE '$filename' INTO TABLE dados_meteo IGNORE 3 LINES 
($fields[0], $fields[1], $fields[2], $fields[3], $fields[4], $fields[5]) 
SET POM='$pom' 
; 

尝试将','替换为'。'加载时。

例如 -

LOAD DATA INFILE 'file.csv' INTO TABLE dados_meteo 
(@var1, @var2) 
SET column1 = REPLACE(@var1, ',', '.'), column2 = REPLACE(@var2, ',', '.') 

如果$场[0]是你的数字:

LOAD DATA INFILE '$filename' INTO TABLE dados_meteo IGNORE 3 LINES 
(@var1, $fields[1], $fields[2], $fields[3], $fields[4], $fields[5]) 
SET POM='$pom', $field[0] = CONVERT(REPLACE(@var1,',', ''), DECIMAL(10)); 

如果有更多的数字,只是用@ VAR2,@ VAR3等重复的图案你要更换DECIMAL(10)无论你的领域是什么。

+0

谢谢@Andrew我尝试后最终代码 - 是给我一个语法错误 – Hugo 2012-01-04 23:52:16

+0

'LOAD DATA INFILE '$文件名' INTO TABLE dados_meteo忽略三行 (@ SET POM ='$ pom', $ field [0] = CONVERT(REPLACE(@ var1,',',''),DECIMAL(varl,@ var2,@ var3,@ var4,@ var5,@ var6) 10)), $ field [1] = CONVERT(REPLACE(@ var2,',',''),DECIMAL(10)), $ field [2] = CONVERT(REPLACE(@ var3,',', '),DECIMAL(10)), $ field [3] = CONVERT(REPLACE(@ var4,',',''),DECIMAL(10)), $ field [4] = CONVERT(REPLACE(@ var5,',','),DECIMAL(10)), $ field [5] = CONVERT(REPLACE(@ var6,',',''), DECIMAL(10)) ;' – Hugo 2012-01-04 23:58:53

+0

你是通过PHP运行的吗?你到底在哪里发生了什么错误? – Andrew 2012-01-05 00:16:52