0

このようなテーブルがあります。

   code  |     name
-------+--------------- 
   102 |    chennai
   101 |    delhi

チェンナイのコードを 101 に、デリーのコードを 102 に変更したいのですが、どうすればよいですか?

4

2 に答える 2

1
update table1 set code = 103 where code = 102;

update table1 set code = 102 where code = 101;

update table1 set code = 101 where code = 103;

または、CURSORを使用できます

于 2013-02-21T06:08:34.390 に答える
0

外部キーがないと仮定すると、テーブル名は city、都市名は一意、データベースは mysql です。他のデータベースにも同じ概念を使用できます。1. 索引をドロップします。2. 値を更新する 3. インデックスを再作成する

CREATE TABLE `city` (
    `id` int(11) unsigned NOT NULL,
    `name` varchar(255) DEFAULT NULL,
    PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

alter table city drop primary key;
update city, (
    select 101 as id, 'chennai' as name
    union all
    select 102 as id, 'delhi' as name
) newIDs
set city.id = newIDs.id
where city.name = newIDS.name ;
alter table city add primary key (id);
于 2013-02-21T06:29:13.097 に答える