题目链接:627. Swap Salary
这是一道关于Mysql的题目,题目大意是:一张数据库表中有一列为sex,这一列只有两种值f(female,女的)和m(male,男的),现在要求你只用一个update语句,并且不用中间表过渡,把f转化为m,m转化为f。
这个题考的其实就是对于Mysql的关键字的了解,我个人因为工作原因基本不接触数据库表,所以并不怎么了解,后来查了才知道有以下这些关键字。
第一种解法
UPDATE salary SET sex = IF(sex = 'm', 'f', 'm')
简单解释一下,if(e1, e2, e3),e1是true的时候,返回e2;否则返回e3
第二种解法
update Salary set sex = (CASE WHEN sex = 'm' THEN 'f' ELSE 'm' END)
这个就不需要解释了,关键点在于对于这种写法是否了解了。
以上。