mysql替换表中的值

sha*_*nth 8 mysql

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

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

我想这样做:

update users set gender='female' where gender='male';
update users set gender='male' where gender='female';
Run Code Online (Sandbox Code Playgroud)

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

我该如何修改查询或者我应该采取另一种方式?

rab*_*dde 12

update users set gender=case when gender='male' then 'female' else 'male' end where gender in ('male','female');
Run Code Online (Sandbox Code Playgroud)


gol*_*mar 5

UPDATE users SET gender='tmp' WHERE gender='male';

UPDATE users SET gender='male' WHERE gender='female';

UPDATE users SET gender='female' WHERE gender='tmp';
Run Code Online (Sandbox Code Playgroud)