将CSV数据导入MYSQL

时间:2015-05-22 13:31:10

标签: php mysql csv

我正在建立一个采用朴素贝叶斯方法的专家系统。我有几张桌子:规则,选择和诊断 规则:

-----------------------------------
|id|id_rule|id_diagnosis|id_choice|
-----------------------------------
|1 |      1|           1|        1|
|2 |      1|           2|        3|
|3 |      1|           3|        5|
|4 |      1|           4|        7|
|5 |      2|           1|        2|
|6 |      2|           2|        4|
|7 |      2|           3|        6|
|8 |      2|           4|        7|
-----------------------------------

诊断

------------------------
|id_diagnosis|diagnosis|
------------------------
|           1|      AAA|
|           2|      BBB|
|           3|      CCC|
|           4|      DDD|
------------------------

选择

-------------------------------
|id_choice|id_diagnosis|choice|
-------------------------------
|        1|           1|    aa|
|        2|           1|    bb|
|        3|           2|    cc|
|        4|           2|    dd|
|        5|           3|    ee|
|        6|           3|    ff|
|        7|           4|    gg|
|        8|           4|    hh|
-------------------------------

在用户界面中,我可以使用选择选项表单手动输入参数(添加规则)。选项的名称是id_choice和id_diagnosis。但是我需要为这个系统计算很多数据。我有csv格式的数据,格式与我的系统中的规则列表的输出相同,如下所示:

----------------------
|rule|AAA|BBB|CCC|DDD|
----------------------
|1   |aa |cc |ee |gg | 
|2   |bb |dd |ff |gg |
----------------------

但问题是,我不知道如何将数据从csv格式添加到数据库,因为在表规则中它只记录id,而不是选择名称和诊断本身。我知道我们可以将csv转换为多维arrat,但我仍然混淆了如何在不手动操作的情况下将名称转换为id。感谢

2 个答案:

答案 0 :(得分:1)

这是命令:

    LOAD DATA INFILE 'c:/country.csv' 
    INTO TABLE *table_name*
    FIELDS TERMINATED BY ',' 
    ENCLOSED BY '"'
    LINES TERMINATED BY '\n'
    IGNORE 1 ROWS

在第二栏中记住一件事,永远不要出现,否则你的导入将停止

答案 1 :(得分:0)

Selamat malam。

您必须从包含主键的逐个表中导入这些数据,然后从包含外键的表中导入数据

除了您需要备份/恢复数据库之外,您必须导入所有数据库表。