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

Sur*_*mma 0 mysql sql database

我有一个带有列的表

ID  NAME    GENDER
------------------ 
1   xxxxxxx m
2   yyyyyyy f
2   zzzzzzz f
Run Code Online (Sandbox Code Playgroud)

现在,我想将'f'更新为'm'和'm',使用单个更新查询将其更新为'f'.

请任何人帮助我

Gor*_*off 5

您可以使用case语句执行此操作:

update tablename t
    set gender = (case when gender = 'm' then 'f'
                       when gender = 'f' then 'm'
                       else gender
                  end);
Run Code Online (Sandbox Code Playgroud)


Ron*_*hah 5

对于mysql,

update tablename 
set gender = if(gender = 'm','f',if(gender = 'f','m',null))
Run Code Online (Sandbox Code Playgroud)