MySQL中的Case语句

MySQL中的Case语句

在MySQL中,Case语句是一种非常有用的查询语句,它可以根据一个或多个条件来判断对应的执行逻辑。Case语句可以用于SELECT、UPDATE、DELETE等操作,下面我们就来看一些示例。

阅读更多:MySQL 教程

SELECT中的Case语句

在SELECT语句中使用Case语句可以方便地根据条件返回不同的结果。以下是一个查询语句的示例,根据不同的用户级别返回不同的优惠价格:

SELECT product_name,
       CASE
           WHEN user_level = 'VIP' THEN price * 0.8
           WHEN user_level = 'Gold' THEN price * 0.9
           ELSE price
       END AS discounted_price
FROM products;
Mysql

在上述语句中,我们使用了CASE语句来根据用户级别计算出不同的折扣价,最终返回的结果包括产品名及对应的折扣价格。

UPDATE中的Case语句

在UPDATE操作中,我们也可以使用Case语句来根据条件更新不同的值。以下是一个示例,将订单状态为’未发货’的改为’已发货’,同时记录发货时间:

UPDATE orders
SET status = CASE
                WHEN status = '未发货' THEN '已发货'
                ELSE status
            END,
    ship_date = CASE
                    WHEN status = '已发货' THEN NOW()
                    ELSE ship_date
                END
WHERE order_id = 12345;
Mysql

在上述语句中,我们使用了两个CASE语句分别对状态和发货时间进行更新,确保只有状态为’未发货’的订单才会被更新并记录发货时间。

总结

通过上述示例,我们可以看到Case语句在MySQL中的灵活性和高效性,可以根据不同的场景快速地判断执行逻辑并返回对应的结果或更新操作。在实际应用中,还可以结合其他语句或函数来进行更为复杂的操作,如IF语句、SUM函数等。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册