簡體   English   中英

將數據加載到MySQL的最佳方法

[英]Best way to load this data into MySQL

我有一個具有主鍵和四個外鍵的表。 我正在使用的所有數據都在Excel電子表格中。 我不確定將這些數據加載到數據庫中的最佳方法。

對於其他一些表,我將所需的Excel列導出為.csv文件,然后使用正則表達式將數據格式化為INSERT語句。

我正在使用的主表如下所示:

Table 1
----------------------------------------------------
| ID    | Text    | category_ID    | f2     |f3    |
----------------------------------------------------
| 1     | Foo     | NULL           | NULL   |NULL  |
| 2     | Bar     | NULL           | NULL   |NULL  |
----------------------------------------------------

下表是這樣的:

Table 2
-----------------------
| ID    | Category    |
-----------------------
| 1     | CatFoo      |
| 2     | CatBar      |
-----------------------

我的Excel就像這樣:

Excel
---------------------------------
| ID    | Text    | category    |
---------------------------------
| 1     | Foo     | CatFoo      |
| 2     | Bar     | CatFoo      |
| 3     | What    | CatBar      |
---------------------------------

我的目標是表1中的Category_ID字段從表2中獲取給定類別的ID號。為此,我需要從Excel中讀取類別,並放置正確的Category_ID 當我只有Excel工作表中的文本數據時,我感到困惑。

有沒有一種方法可以對照Table 2中的數據檢查文本,找到與文本匹配的ID,並相應地更新Table 1的行?

我一直在網上搜索,但是找不到任何可以使用的東西,但是我非常適合數據庫的初學者,因此可以提供任何幫助。

您應該做的第一件事是將所有數據加載到同一數據庫中。

我假設您的CSV格式正確,可以使用mySQL的LOAD DATA INFILE函數將csv文件加載到SQL數據庫中,如果您不使用mysql,則可能會為數據庫系統找到類似的功能。

您需要首先創建約束數據的表結構,然后再使用查詢加載數據(不用擔心,如果您不知道mysql引擎的默認路徑,mySQL將在錯誤消息中將其提供給您)

將數據輸入文件'path / YourCSVFILE.csv'加載到表中字段以''''終止

請參閱下面的完整文檔(針對您自己的csv格式進行調整) http://dev.mysql.com/doc/refman/5.1/en/load-data.html

因此,在嘗試了復雜的UPDATE JOIN查詢並沒有成功之后,我找到了解決您的問題的解決方案。

如果您的表之間沒有牢固的鏈接,則使用所有沒有空ID類別的數據創建一個新表,並將其替換為新值應該是可行的

CREATE TABLE result SELECT table1.id,table1.text,table2.id as id_category,f1,f2FROM table1INNER JOIN excel ON excel.on = excel1.text = table1.textINNER JOIN table2 ON table2.category = excel.category

我將所有表字段的小寫形式放在我的頭上。

希望有幫助

問候

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM