justdo-it  

给定一个工资表,如下所示,m=男性 和 f=女性 。交换所有的 f 和 m 值(例如,将所有 f 值更改为 m,反之亦然)。要求使用一个更新查询,并且没有中间临时表。

例如:

| 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 salary SET sex = IF(sex = 'm', 'f', 'm')
解法二: UPDATE salary    SET sex  = (CASE WHEN sex = 'm'   THEN  'f'  ELSE 'm'   END)
解法三: UPDATE salary SET sex = IF(sex = 'm', 'f', 'm')
posted on 2018-02-27 19:36  justdo-it  阅读(902)  评论(0)    收藏  举报