2011-05-13 84 views
2

好的,我有一個名爲id的列,其中有2000個「ids」,並且我有一個新添加的名爲「name」的字段。將數據插入列

我想知道如何去插入一個名稱列表,以便他們排隊到他們相應的ID?

id ||名稱

1 || bob 
2 || smith 
3 || john 
4 || louis 
5 || kevin 
6 || jacob 
7 || tim 

我對不清楚這個問題表示歉意。 id和name都在同一張表中。過去添加的卡片與描述,顏色等其他位數據相同,因此已經生成了很多ID。我剛剛被要求在表格「卡片」中添加一個名稱字段,並將電子表格中的數據插入到所述名稱字段中。

+1

這個問題不是很清楚... – 2011-05-13 15:14:05

+0

名稱列表位於哪裏,它是否也有ID? – RedFilter 2011-05-13 15:14:56

+0

我對不清楚問題表示歉意。 id和name都在同一張表中。過去添加的卡片與描述,顏色等其他位數據相同,因此已經生成了很多ID。我剛剛被要求在表格「卡片」中添加一個名稱字段,並將電子表格中的數據插入到所述名稱字段中。 – 2011-05-13 15:30:19

回答

4

如果你有一個電子表格中的數據,2列,編號和名稱,你可以做到以下幾點:

在電子表格中的第三列,做

=CONCATENATE("UPDATE cards SET name = '",A1,"' WHERE id = ",A2,";") 

然後將該公式拖至所有行。然後你可以運行生成的查詢。對於2000行,它不應該花費很長時間。

+0

假設你正在使用Excel。否則,不同的功能也會以相同的方式工作。 – gmadd 2011-05-13 15:38:19

+0

@gmadd,是的,我將給出的數據是在Excel電子表格中,我只需要將該數據添加到表格中。到目前爲止,該表只包含「id」,而電子表格的名稱爲「name」 – 2011-05-13 16:37:36

+0

@gmadd,感謝您的建議。這正是我完成工作所需要的。 – 2011-05-16 12:33:12

2

您需要id和name之間的已知關係。因此,在使用它來更新表格之前,您的名稱列表必須包含該ID。由於這一定是這種情況,因此請創建一個帶有id,name的臨時表並使用它來更新主表。例如

CREATE TEMPORARY TABLE tmptable(id INT(10) UNSIGNED PRIMARY KEY, 
           firstname VARCHAR(20)); 
LOAD DATA INFILE '/path/to/mynames.txt' INTO tmptable(id, firstname); 
UPDATE mytable m JOIN tmptable t ON (m.id=t.id) SET m.firstname=t.firstname; 

退房LOAD DATA INFILE語法here