PHP将数据加载到MySQL表格某些列

时间:2018-02-12 12:01:43

标签: php mysql csv

我有一个CSV文件,我需要插入MySQL表。但是,CSV文件与表的列数不同,列的顺序不同。

该表包含以下列: ID,Product_ID,Order_ID,Shipping_Name,Shipping_Postcode,Tracking_Number

CSV包含: Tracking_Number,Order_ID,姓名,邮政编码 (产品ID是文件的名称,我可以在PHP中将其设置为变量,然后更新列,这样就可以了)

我知道您可以在查询中使用@创建假列以跳过表中的某些列,但我不确定如何链接不同顺序的列,或者甚至可能。

以下是我在列匹配时使用的查询:

LOAD DATA INFILE '/var/www/html/imports/tracking/$file'
    IGNORE INTO TABLE tracking
    FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"'
    LINES TERMINATED BY '\n'
    IGNORE 1 LINES
    (@product_id, @order_id, @shipping_name, @shipping_postcode, @tracking_number)
    SET Product_ID=@product_id, Order_ID=@order_id, Shipping_Name=@shipping_name, Shipping_Postcode=@shipping_postcode, Tracking_Number=@tracking_number";

我可以根据需要进行调整吗?

1 个答案:

答案 0 :(得分:1)

你没有product_id所以

只需将csv用作位置,将列表用于缩进

LOAD DATA INFILE '/var/www/html/imports/tracking/$file'
    IGNORE INTO TABLE tracking
    FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"'
    LINES TERMINATED BY '\n'
    IGNORE 1 LINES
    (@col1, @col2, @col3, @col4)
    SET  Order_ID=@col2, Shipping_Name=@col3, Shipping_Postcode=@col4, Tracking_Number=@col1";
相关问题