2015-12-02 29 views
0

我有一個巨大的文件(超過2000行)的選項卡分隔值存儲爲.txt文件。選項卡分隔文件到SQL查詢(批量更新)

我想使用該文件來更新我的數據庫項在phpmyadmin中。

有沒有正確的方法來將這些行轉換爲sql語句(mysql)? 例如:

1 2 nameX descriptionY tagKeywords metatagTitleX metadescriptionX metaKeywordsX 

會變成這樣:

UPDATE table SET name=nameX, description=descriptionY, tag=tagKeywords, meta_title=metatagTitleX, meta_description=metadescriptionX, meta_keywords=metaKeywordsX WHERE id=1 AND languague_id=2; 

我嘗試使用此正則表達式:^.*?(?=\t)但這只是發現了一個行第一次出現的匹配。 怎樣才能「記住」正則表達式能夠做出替換的內容?

或者如果有另一種更簡單的方式讓我知道。

回答

1

我解決它通過創建一個表:

CREATE TABLE your_temp_table LIKE your_table;

然後導入的數據(在新創建的表),在phpMyAdmin的進口標籤說是用標籤(\ t)的csv文件分隔列。

然後進行更新查詢:

UPDATE your_table 
INNER JOIN your_temp_table on your_temp_table.id = your_table.id 
SET your_table.quantity = your_temp_table.quantity; 

哪裏人我的值進行設置。

然後刪除新創建的表。

我希望人們可以在將來使用這種方法:)!

0

如果此文本文件具有相同結構的所有行,那麼也許您可以在每個選項卡和寫入輸出文件之前使用選項卡計數並插入查詢字符串關鍵字。 或嘗試使用xls文件將具有正確字符串值的列放入行中。