我有一个接受CSV文件的数据导入例程,其第一列包含一个字符数据集,其中包含格式为0123,0517,1531等的ID值。通常4个数字,前导零为3数字。
使用varchar(255)字段将数据加载到表中,但是当我调用LOAD DATA命令时,它全部被导入而没有前导零。这里有什么我想念的吗?
db_query('CREATE TABLE feed_buildings (
BLDGID varchar(255),
BLDGNAME varchar(255),
CITY varchar(255),
STATE varchar(255),
ZIPCODE varchar(255),
LLRDID varchar(255),
BLDGGLA varchar(255),
ADDRESS1 varchar(255),
ADDRESS2 varchar(255),
NMBRUNIT varchar(255),
MNGRID varchar(255),
INACTIVE varchar(255),
OCCGLA varchar(255) )', false, false);
在这个例子中,当我运行以下命令时,BLDGID字段失去了前导零:
$loadfields = ' ( BLDGID, BLDGNAME, CITY, STATE, ZIPCODE, LLRDID, @ignore, BLDGGLA, @ignore, ADDRESS1,
ADDRESS2, @ignore, @ignore, NMBRUNIT, MNGRID, @ignore, @ignore, @ignore, @ignore, @ignore,
@ignore, @ignore, @ignore, @ignore, @ignore, @ignore, @ignore, @ignore, INACTIVE, @ignore,
@ignore, @ignore, @ignore, @ignore, @ignore, OCCGLA )';
$loadquery = 'LOAD DATA LOCAL INFILE \'' . $path . '\' INTO TABLE feed_buildings . ' FIELDS TERMINATED BY \',\' ENCLOSED BY \'"\' LINES TERMINATED BY \'\r\n\' IGNORE 1 LINES';
db_query_unprepared($loadquery . $loadfields);
提前感谢您的帮助!
答案 0 :(得分:0)
无视 - 我不确定前几次是如何发生的,但最后几次正确导入。