我正在将一个csv文件转储到mysql表中,并且我设法将所有字段中的小问题都弄乱了,除了一个。 csv文件将值存储为£x.xx,我需要将其存储为x.xx
我的代码是
LOAD DATA LOCAL INFILE 'filename.ext'
INTO table TABLENAME
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '\"'
LINES TERMINATED BY '\r\n'
IGNORE 7 LINES
(@billValue)
SET
billValue = REPLACE(REPLACE(TRIM(@billValue), '£', ''), ',',''),
;
我也尝试过
TRIM(LEADING '£' FROM NULLIF(@billValue, '')),
但它不粘。我一直在
Incorrect decimal value: '£0.00' for column 'billValue'
任何帮助,不胜感激。
最佳答案
正如ÁlvaroGonzález所暗示的那样,我的CSV是UTF-8编码的,并引起了问题。当我意识到每行末尾有三列额外的列时,此后的问题得以解决。通过将它们分配给用户变量而不将变量分配给表列,它们将被丢弃。希望这对其他人有帮助。
谢谢Álvaro
关于mysql - 加载数据本地文件修剪£,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43294996/