我正在将一个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/

10-09 17:30