MySQL中怎么使用CASE语句(mysql中case使用)
MySQL中怎么使用CASE语句?
MySQL中的CASE语句可以在查询和更新语句中使用。它允许使用条件来执行不同的操作,从而使查询或更新更加灵活。在本文中,我们将介绍MySQL中使用CASE语句的基本语法和示例。
基本语法
MySQL中的CASE语句的基本语法如下:
CASE expr
WHEN value1 THEN result1WHEN value2 THEN result2
...WHEN valuen THEN resultn
ELSE default_resultEND
其中,expr是要比较的表达式,value1、value2、…、valuen是expr可能的值,result1、result2、…、resultn是expr等于相应value时要返回的结果,而default_result是expr不等于任何value时要返回的结果。
示例
下面的示例演示了如何在MySQL中使用CASE语句。
例1:根据price列的值计算出折扣价和标准价:
SELECT
product_id, price,
CASE WHEN price >= 1000 THEN price * 0.9
WHEN price >= 500 THEN price * 0.95 ELSE price
END AS discount_price, CASE
WHEN price >= 1000 THEN '高档商品' WHEN price >= 500 THEN '中档商品'
ELSE '廉价商品' END AS level
FROM products;
在该查询语句中,CASE语句对每一行计算了折扣价和标准价,并为每个商品分配了一个级别。结果如下:
product_id | price | discount_price | level
-----------|-------|----------------|--------1 | 950 | 950 | 廉价商品
2 | 1250 | 1125 | 高档商品3 | 550 | 522.5 | 中档商品
4 | 780 | 741 | 中档商品
例2:根据gender列的值计算出男性、女性和未知性别的员工数量:
SELECT
COUNT(*) AS total, SUM(CASE WHEN gender = '男' THEN 1 ELSE 0 END) AS male,
SUM(CASE WHEN gender = '女' THEN 1 ELSE 0 END) AS female, SUM(CASE WHEN gender IS NULL THEN 1 ELSE 0 END) AS unknown
FROM employees;
在该查询语句中,CASE语句按照gender列中的值计算了男性、女性和未知性别的员工数量。结果如下:
total | male | female | unknown
------|------|--------|--------6 | 2 | 2 | 2
总结
通过上述示例,我们可以看出MySQL中使用CASE语句的灵活性和实用性。如果您需要在查询或更新中使用条件语句,可以考虑使用MySQL的CASE语句。