变更性别
- 题目如下所示
个人题解
这题比较简单,主要学习一下 MySQL 当中 case
和 if
的用法,值得参考。个人思考过程如下 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 类型