如何按条件修改数据?

1、题目

给定一个 salary 表,如下所示,有 m = 男性 和 f = 女性 的值。交换所有的 f 和 m 值(例如,将所有 f 值更改为 m,反之亦然)。要求只使用一个更新(Update)语句,并且没有中间的临时表。
注意,您必只能写一个 Update 语句,请不要编写任何 Select 语句。


题目.png

2、解题方法

  1. 使用case表达式
  2. 使用if表达式

3、case表达式

case表达式.png

update salary
set sex = (case sex
when 'm' then 'f'
else 'm'
end);

4、if表达式

除了使用case表达式,还可以使用if表达式来解题。
IF(expr1,expr2,expr3)
如果 expr1 是true,则 IF()的返回值为expr2; 否则返回值则为 expr3。

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

5、举一反三

  1. 在遇到需要将表内某列特定值替换成其他值时,记住case表达式如何使用。
  2. 只有2个值进行替换时,if表达式和case表达式都可以使用。
  3. 超过2个值的替换时,只能用case表达式
  4. 本题如果只是要求查询的话,使用select语句即可:
    select (上面的case表达式) from 表名
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。