2012-11-13 25 views
2

我想在從基於一些標準例如不同的列的列填充數據的列填充數據,我有一個表:MySQL的:在從不同的列

MyTable(id, area_id, name) 

有樣本數據:

10 1 <name> 
20 2 <name> 
30 3 <name> 
40 4 <name> 
50 1 <name> 
60 2 <name> 
70 3 <name> 
80 4 <name> 

現在我想這個表進行更新

10 1 Area 1 
20 2 Area 2 
30 3 Area 3 
40 4 Area 4 
50 1 Area 1 
60 2 Area 2 
70 3 Area 3 
80 4 Area 4 

如何在單個查詢做到這一點。

+0

你想添加一個新的列或只是更新與區域1或區域2,如例子中的現有列名? – krishnang

+0

列已經存在,我只想更新它,但如果某人也可以提供也可以創建新列的查詢,那將會很棒。 :) – gmuhammad

+0

'+ 1'用於添加具有所需結果的樣本記錄。 –

回答

1

要添加新的列(如在評論中提到的):

ALTER TABLE MyTable ADD areaName VARCHAR(60); 

爲了用新值更新現有的表列name

UPDATE MyTable 
SET name = CONCAT('Area ', area_id) 
3

SQLFIDDLEexample 更新你的餐桌:

UPDATE MyTable 
SET `name` = CONCAT('Area ', area_id); 

插入新列和更新

ALTER TABLE `MyTable` ADD `new_name` VARCHAR(50) NOT NULL ; 

UPDATE MyTable 
SET `new_name` = CONCAT('Area ', area_id); 

結果:

| ID | AREA_ID | NAME | NEW_NAME | 
------------------------------------ 
| 10 |  1 | Area 1 | Area 1 | 
| 20 |  2 | Area 2 | Area 2 | 
| 30 |  3 | Area 3 | Area 3 | 
| 40 |  4 | Area 4 | Area 4 | 
| 50 |  1 | Area 1 | Area 1 | 
| 60 |  2 | Area 2 | Area 2 | 
| 70 |  3 | Area 3 | Area 3 | 
| 80 |  4 | Area 4 | Area 4 |