627-变更性别

发布时间 2023-07-11 15:27:41作者: OnlyOnYourself-Lzw

变更性别

原文地址:627. 变更性别 - 力扣(LeetCode)

  • 题目如下所示

个人题解

这题比较简单,主要学习一下 MySQL 当中 caseif 的用法,值得参考。个人思考过程如下 SQL 所示

  • -- 1. 建表
    CREATE TABLE 627_salary(
    	id INT auto_increment,
    	name varchar(20) NOT NULL,
    	sex ENUM('m', 'f') NOT NULL,
    	salary INT,
    	PRIMARY KEY(id)
    );
    
    -- 2. 编写一个 SQL 交换所有的 'f' 和 'm',仅使用单个 update 语句
    -- PS: 必须仅使用一条 update 语句,且不能使用 select 语句
    
    -- 方法一:使用 MySQL 的 case 语句(case 语句也可应用于查询语句)
    UPDATE 627_salary s SET s.sex = CASE s.sex
    	WHEN 'm' THEN
    		'f'
    	ELSE
    		'm'
    END;
    
    -- 方式二:使用 MySQL 的 if 语句
    UPDATE 627_salary s SET s.sex = IF(s.sex = 'm','f','m');
    
    -- 官网评论区还有个使用 ASCII 码求和的方式解决的,挺 6 的,不过仅局限于 英文字母 且是 ENUM 类型