![](/img/trans.png)
[英]How i can import a file(csv/excel) with partial data to table in database through phpmyadmin?
[英]import tab separated csv file with partial data into mysql table with phpMyAdmin
我有一個約有30列的MySQL表。 我有一個約有10列的CSV文件。
我想使用phpMyAdmin從數據庫中的CSV文件更新數據,而不更改其余數據。
例如,MySQL將是:
id, code, name, description, a, b, c, x, y, z
10, rbmls, Joe Blow, Neighbor, 100, 200, 500, 80, 800, 10
CSV可能包含:
id[TAB]code [TAB]a [TAB]b [TAB]c
10[TAB]rbmls[TAB]10[TAB]300[TAB]0
我想按ID匹配CSV和MySQL表中的數據,然后覆蓋MySQL表中CSV中的數據,而不刪除其他任何內容。
上述示例的預期結果將是:
id, code, name, description, a, b, c, x, y, z
10, rbmls, Joe Blow, Neighbor, 10, 300, 0, 80, 800, 10
如何在phpMyAdmin中做到這一點?
LOAD DATA INFILE
在末尾具有列規范。 看這里
LOAD DATA INFILE ...
INTO TABLE ...
FIELDS TERMINATED BY '\t'
IGNORE 1 LINES
(id, code, a, b, c)
從MySQL-Doc:
默認情況下,當在LOAD DATA INFILE語句的末尾未提供任何列列表時,輸入行應包含每個表列的字段。 如果只想加載表的某些列,請指定一個列列表:LOAD DATA INFILE'persondata.txt'INTO TABLE persondata(col1,col2,...);
替代
將數據加載到臨時表中,然后從那里對主表執行INSERT ... UPDATE
。 像這樣:
LOAD DATA INFILE ... INTO TABLE `temp` ...
INSERT INTO mainTable (id, code, a, b, c)
SELECT * FROM `temp`
ON DUPLICATE KEY UPDATE code=VALUES(code), a=VALUES(a), b=VALUES(b), c=VALUES(c);
看這里
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.