627. Swap Salary

来源:互联网 发布:linux 大文件中查找 编辑:程序博客网 时间:2024/06/05 14:41

题目:

交换男女性别。

例子:

id name sex salary 1 A m 2500 2 B f 1500 3 C m 5500 4 D f 500

结果:

id name sex salary 1 A f 2500 2 B m 1500 3 C f 5500 4 D m 500

解析:

问题需要‘修改’表中某项内容,显而易见应该是用到UPDATE方法来修改表中内容。在这里我们可以联想到编程语言中交换a,b的操作。大多都是需要一个中间变量来操作,因此该问题可以又如下解法。

update salary set sex='c' where sex='f';update salary set sex='f' where sex='m';update salary set sex='m' where sex='c';select * from salary;

这是一种非常朴素、非常简单的解法,利用‘c’来做中间变量,然而这种写法非常的冗余。(注意:这里必须加分号,不加分号会认为是只一句sql语句就会报错。)因此,更为聪明的写法如下:

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

一个条件判断嵌入到set中,书写简洁,还容易理解。if中的三个参数,第一个是条件,第二个是条件为真时的返回值,第三个则是条件为假时的返回值。

原创粉丝点击