2015-05-22 215 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)。請詳細閱讀我的問題 –