2

たとえば、いくつかの基準に基づいて、さまざまな列から列にデータを入力したいのですが、テーブルがあります。

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

単一のクエリでこれを実現する方法。

4

3 に答える 3

4

nameが既に存在するため、を使用して更新しますCONCAT

UPDATE tableName
SET name = CONCAT('Area ', area_id)

別の列を追加する場合は、記事をお読みください

于 2012-11-13T09:34:50.397 に答える
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 |
于 2012-11-13T09:42:37.967 に答える
1

新しい列を追加するには(コメントに記載されているように):

ALTER TABLE MyTable ADD areaName VARCHAR(60);

列の新しい値で既存のテーブルを更新するにはname:

UPDATE MyTable
SET name = CONCAT('Area ', area_id)
于 2012-11-13T09:37:19.997 に答える