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

Mysql 如何使用单个更新查询交换表中的列值,mysql,sql,database,Mysql,Sql,Database,我有一张有列的桌子 ID NAME GENDER ------------------ 1 xxxxxxx m 2 yyyyyyy f 2 zzzzzzz f 现在,我希望用一个更新查询将“f”更新为“m”,并将“m”更新为“f” 请任何人帮助我您可以通过案例陈述来完成: update tablename t set gender = (case when gender = 'm' then 'f' when gend

我有一张有列的桌子

ID  NAME    GENDER
------------------ 
1   xxxxxxx m
2   yyyyyyy f
2   zzzzzzz f
现在,我希望用一个更新查询将“f”更新为“m”,并将“m”更新为“f”


请任何人帮助我

您可以通过案例陈述来完成:

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

您可以通过案例陈述来实现这一点:

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

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

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

@尤尔根德。我不是说“表”作为关键字,只是表名
t
是它的别名(在这种情况下不需要)。我不是说“表”作为关键字,只是表名
t
是它的别名(在这种情况下不需要)。