在我的代码中,我有一个如下所示的查询:
$load_query = "LOAD DATA LOCAL INFILE '{$file}' INTO TABLE `{$table}`
FIELDS TERMINATED BY ',' ENCLOSED BY '\"';";
这是我尝试加载的文件中包含的示例行:
"MC318199","06160","1","P","00750","00000","TN598792","04/16/2009","91X"
您会注意到在示例行的末尾有很多空格。这些空格都出现在终止该行的换行符“\n”之前。问题是这些空间被输入到数据库中。
运行命令时如何删除额外的空格LOAD DATA INFILE
?有没有办法使用RTRIM
?
编辑
正如ajreal建议的那样,我必须重新准备文件。文件准备好后,它已正确插入数据库。我修改了位于http://gabeanderson.com/2008/02/01/unixlinux-find-replace-in-multiple-files/的 bash 脚本来完成此操作。代码如下所示:
#!/bin/bash
for fl in *.txt; do
mv $fl $fl.old
sed 's/[ \t]*$//' $fl.old > $fl
rm -f $fl.old
done