我正在将一个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'
非常感谢任何帮助。
答案 0 :(得分:1)
正如ÁlvaroGonzález暗示的那样,我的CSV是UTF-8编码的,并且造成了问题。当我意识到每行末尾有三个额外的列时,问题就解决了。通过将它们分配给用户变量而不将变量分配给表列,它们将被丢弃。希望这有助于其他任何人。
谢谢Álvaro