MySQL LOAD DATA正在删除varchar字段中的前导零

时间:2013-02-18 19:00:03

标签: php mysql csv

我有一个接受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);

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

无视 - 我不确定前几次是如何发生的,但最后几次正确导入。