MySQL中的Case语句


<!–

–>

MySQL中的Case语句

在MySQL中,Case语句是一种流程控制语句,可以根据条件执行不同的语句块。它可以使用在查询和更新语句中。

阅读更多:

Case语句的常见格式

CASE expression
  WHEN value_1 THEN result_1
  WHEN value_2 THEN result_2
  ...
  WHEN value_N THEN result_N
  ELSE default_result
END

其中,expression指定要比较的表达式,value_i指定表达式可能的取值,result_i是在value_i匹配时返回的结果,default_result是当没有任何表达式匹配时返回的结果。

(adsbygoogle = window.adsbygoogle || []).push({});

示例

假如我们有一张学生表,其中包含学生的姓名和分数:

姓名 分数
Alice 75
Bob 82
Carol 68
David 92
Emily 55

我们可以使用Case语句,将分数按照分段分类:

SELECT name,
  CASE 
    WHEN score >= 90 THEN 'A'
    WHEN score >= 80 THEN 'B'
    WHEN score >= 70 THEN ''
    WHEN score >= 60 THEN 'D'
    ELSE 'E'
  END AS grade
FROM students;

输出结果:

姓名 等级
Alice
Bob B
Carol D
David A
Emily E

Case语句在更新语句中的应用

Case语句也可以使用在更新语句中,假设我们要将分数大于等于80的学生加10分,并将分数小于80的学生加5分,可以这样写:

UPDATE students
SET score = 
  CASE 
    WHEN score >= 80 THEN score + 10
    ELSE score + 5
  END;

这样,我们就可以有效率地更新学生的成绩。

总结

Case语句是在MySQL中常用的流程控制语句,可以根据条件执行不同的语句块。我们可以使用它在查询语句中分类,也可以在更新语句中更新数据。通过使用这个特性,我们可以更好地管理数据,并且减少出错的可能性。

(adsbygoogle = window.adsbygoogle || []).push({});