mysql替换表中的值

时间:2011-12-06 13:24:14

标签: mysql

我的mysql数据库中有一个用户表,其中包含id,age和gender等列。 我已经插入了大约500条记录。

现在我需要为记录交换性别,即用男性替换男性与女性和女性。

我想这样做:

update users set gender='female' where gender='male';
update users set gender='male' where gender='female';

但是正如您所看到的,只要我运行第一个查询,所有记录都会更新,并将性别设置为“女性”。

我如何修改查询或者我应该采取其他方式?

5 个答案:

答案 0 :(得分:11)

update users set gender=case when gender='male' then 'female' else 'male' end where gender in ('male','female');

答案 1 :(得分:4)

更新用户设置gender ='tmp',其中gender ='male';

更新用户设置gender ='male',其中gender ='female';

更新用户设置gender ='female',其中gender ='tmp';

答案 2 :(得分:3)

将两个查询合并为一个: -

update users set gender = if (gender='female', 'male', 'female');

答案 3 :(得分:3)

update users set gender='fem' where gender='male';
update users set gender='male' where gender='female';
update users set gender='female' where gender='fem';

答案 4 :(得分:2)

update users set gender='wasmale' where gender='male';
update users set gender='male' where gender='female';
update users set gender='female' where gender='wasmale';