如何使用单个更新查询交换表中的列值

时间:2014-04-19 12:34:28

标签: mysql sql database

我有一个包含列的表

ID  NAME    GENDER
------------------ 
1   xxxxxxx m
2   yyyyyyy f
2   zzzzzzz f

现在,我希望将'f'更新为'm',并将'm'更新为'f',并使用单个更新查询。

请有人帮帮我

2 个答案:

答案 0 :(得分:5)

您可以使用案例陈述执行此操作:

update tablename t
    set gender = (case when gender = 'm' then 'f'
                       when gender = 'f' then 'm'
                       else gender
                  end);

答案 1 :(得分:5)

对于mysql,

update tablename 
set gender = if(gender = 'm','f',if(gender = 'f','m',null))