2015-05-22 126 views
1

我正在用朴素贝叶斯方法构建专家系统。我有几个表:规则,选择和诊断 规则:CSV数据导入MYSQL

----------------------------------- 
|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格式的数据,相同的格式规则列表的输出INI我的系统是这样的:

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

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

回答

1

这里是命令:

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

保持一件事记住,永远不会出现在第二列,否则导入将会停止

+0

我知道该怎么做。但我不知道如何在输入数据和所需结构之间进行转换。请看我的例子 –

0

斯拉末马拉姆。

你必须用一个表,其中包括一个主键,然后从表中,除非你想有一个备份,其中包括一个外键

进口数据导入从一个这些数据/恢复数据库,您必须导入数据库的所有表。

+0

你能解释一下细节吗?这里的问题是因为输入数据(csv)和mysql表之间的结构不同。我需要从CSV导入数据,以避免输入手册逐一 –

+0

哦,我现在明白了,所以它是关于开始。你使用什么系统(phpmyadmin,SQL Server Management Studio)? –

+0

我使用phpmyadmin。不同之处在于结构表不是文件本身(SQL和CSV)。请详细阅读我的问题 –