我正在将数据从CSV文件导入MySQL表。当基本查询如
select * from Mapping where floor = 'L1';
字符串
我不工作,经过很多斗争我发现,这是因为白色和查询
select * from Mapping where floor like '%L1%';
型
给了我预期的结果
下面是我如何将CSV加载到表中:
LOAD DATA LOCAL INFILE "../.../mapping.csv" INTO TABLE db.Mapping
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
IGNORE 1 LINES
型
我不知道白色是从哪里来的。我是否以正确的方式加载CSV?有什么方法可以避免白色吗?
更新
我试过了,
Query OK, 0 rows affected (0.00 sec)
Rows matched: 49 Changed: 0 Warnings: 0
型
它说没有行受影响。
select * from Mapping where floor = 'L1';
型
还是不行但是
select * from Mapping where floor like '%L1%';
型
给出了预期的结果。
CSV文件数据:
V,M,Floor
1,15,L1
2,14,L1
3,14,L1
4,16,L1
5,16,L1
6,6,L1
7,14,L1
8,13,L1
9,12,L1
10,11,L1
11,16,L1
型
2条答案
按热度按时间qojgxg4l1#
通常,我建议将数据加载到所有列都是字符串的staging表中,然后在数据库中进行清理。
但是,
load data infile
确实有一些很好的清理数据的功能。如果你的额外字符是空格,你可以使用trim()
。关键是变量和SET
:字符串
如果错误更复杂,那么正则表达式很有用:
型
cgyqldqp2#
您可以在插入数据后始终修剪空白;
字符串