我的mysql数据库中有一个用户表,其中包含id,age和gender等列。 我已经插入了大约500条记录。
现在我需要为记录交换性别,即用男性替换男性与女性和女性。
我想这样做:
update users set gender='female' where gender='male';
update users set gender='male' where gender='female';
但是正如您所看到的,只要我运行第一个查询,所有记录都会更新,并将性别设置为“女性”。
我如何修改查询或者我应该采取其他方式?
答案 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';