力扣627(MySQL)-变更性别(简单)

发布时间 2023-04-07 08:54:07作者: 我不想一直当菜鸟

题目:

Salary 表:

请你编写一个 SQL 查询来交换所有的 'f' 和 'm' (即,将所有 'f' 变为 'm' ,反之亦然),仅使用 单个 update 语句 ,且不产生中间临时表。

注意,你必须仅使用一条 update 语句,且 不能 使用 select 语句。

查询结果如下例所示。

示例1:

 

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/swap-salary
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

 解题思路:

方法一:update + case...when

1 update Salary
2 set sex = CASE sex 
3     when 'm' then 'f'
4     when 'f' then 'm' 
5     else sex
6     end

方法二:update + if

update Salary set sex = if(sex = 'f', 'm' , 'f')

小知识:

修改单表数据语法:

1 update 表名
2 set 字段名1 = 新值1,字段名2=新值2,...
3 where 筛选条件

修改多表数据语法:

1 update 表1 别名
2 inner/left/right join 表2 别名
3 on 连接条件
4 set 字段名1=值1,字段名2 =值2,...
5 where 筛选条件