我遇到了必须导入到MySQL的有问题的CSV文件。
通过使用PHP,然后插入命令,或者直接通过MySQL的加载数据infile。
我已经附上了文件中数据外观的部分屏幕截图:
我需要插入的值在“ ACC1000”之下,因此我必须从第5行开始,逐步遍历约5500行的文件。
不可能跳到每一行,因为对于某些帐户,付款如下所示。
我一直在尝试通过扫描各行中是否出现“ ACC”来到达下一行
if (strpos($data[$c], 'ACC') !== FALSE){
echo "Yep ";
} else {
echo "Nope ";
}
我知道这很粗糙,但我真的不知道从哪里开始。
如果您在目标表中定义了一个(外键)约束,因此该type
列中具有空白值的记录将被拒绝,则可以使用MySQLLOAD DATA INFILE
将第一列读入一个用户变量(该变量将结转到后续记录中)并应用其IGNORE
关键字以跳过那些未通过FK约束的“记录”:
LOAD DATA INFILE '/path/to/file.csv'
IGNORE
INTO TABLE my_table
CHARACTER SET utf8
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 4 LINES
(@a, type, date, terms, due_date, class, aging, balance)
SET account_no = @account_no := IF(@a='', @account_no, @a)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句