MySQL CSV 导入无法匹配列的值
MySQL CSV-Import Can't match values of a column
我遇到以下情况:
我通过 "LOAD DATA LOCAL INFILE".
将 .csv 导入 mysql
一切正常,但有一列有点坏了。
它充满了 "category-names" 像 'LFP-Graphic Art' 和 'Papiere, Blöcke, Formulare'。
如果我使用简单的语句在 table 中查找条目,我得到的结果为零:
SELECT * FROM t_category
WHERE category = 'LFP-Graphic Art';
如果我让它显示 table 中的所有内容,我可以看到确实有类别为 'LFP-Graphic Art' 的条目。
我也已经在寻找空格,但这似乎不是问题所在。
我猜是导入出了问题?
我在没有 BOM 的情况下将 .csv 文件格式化为 UTF8。
编辑:
当我更新数据集并删除一个字符时,select-语句工作正常。
csv 中的示例行:
active;supplier;SUPPLIER_AID;categorie
1;kb;10101;FP-Graphic Art
和 MySQL-table:
t_import
name, type, collation
active, tinyint(4), latin1_general_ci
supplier, char(255), latin1_general_ci
SUPPLIER_AID, char(255), latin1_general_ci
category, varchar(255), utf8_general_ci
也许它适用于 TRIM()。我觉得有什么隐藏角色。
SELECT * FROM t_category WHERE TRIM(category) = TRIM('LFP-Graphic Art');
是否存在行尾问题您可以更新该字段。
-- with a \n line end (Unix)
UPDATE t_category SET category = TRIM(BOTH '\n' from category)
-- with a \n\r line end (Windows)
UPDATE t_category SET category = TRIM(BOTH '\n\r' from category)
当可以再次加载数据时,添加 'terminated by':
LOAD DATA .... LINES TERMINATED BY '\n'
-- or
LOAD DATA .... LINES TERMINATED BY '\n\r'
尝试检查 'line terminated by' 语句。
由于有问题的字段是最后一个字段,因此您可能错误地加载了 return 字符。
我遇到以下情况: 我通过 "LOAD DATA LOCAL INFILE".
将 .csv 导入 mysql一切正常,但有一列有点坏了。
它充满了 "category-names" 像 'LFP-Graphic Art' 和 'Papiere, Blöcke, Formulare'。
如果我使用简单的语句在 table 中查找条目,我得到的结果为零:
SELECT * FROM t_category
WHERE category = 'LFP-Graphic Art';
如果我让它显示 table 中的所有内容,我可以看到确实有类别为 'LFP-Graphic Art' 的条目。
我也已经在寻找空格,但这似乎不是问题所在。
我猜是导入出了问题?
我在没有 BOM 的情况下将 .csv 文件格式化为 UTF8。
编辑:
当我更新数据集并删除一个字符时,select-语句工作正常。
csv 中的示例行:
active;supplier;SUPPLIER_AID;categorie
1;kb;10101;FP-Graphic Art
和 MySQL-table:
t_import
name, type, collation
active, tinyint(4), latin1_general_ci
supplier, char(255), latin1_general_ci
SUPPLIER_AID, char(255), latin1_general_ci
category, varchar(255), utf8_general_ci
也许它适用于 TRIM()。我觉得有什么隐藏角色。
SELECT * FROM t_category WHERE TRIM(category) = TRIM('LFP-Graphic Art');
是否存在行尾问题您可以更新该字段。
-- with a \n line end (Unix)
UPDATE t_category SET category = TRIM(BOTH '\n' from category)
-- with a \n\r line end (Windows)
UPDATE t_category SET category = TRIM(BOTH '\n\r' from category)
当可以再次加载数据时,添加 'terminated by':
LOAD DATA .... LINES TERMINATED BY '\n'
-- or
LOAD DATA .... LINES TERMINATED BY '\n\r'
尝试检查 'line terminated by' 语句。 由于有问题的字段是最后一个字段,因此您可能错误地加载了 return 字符。