首页 > 数据库 > mysql教程 > 如何正确使用MySQL的CASE..WHEN语句以避免出现意外结果?

如何正确使用MySQL的CASE..WHEN语句以避免出现意外结果?

Susan Sarandon
发布: 2024-12-31 18:56:10
原创
888 人浏览过

How Can I Correctly Use MySQL's CASE..WHEN Statement to Avoid Unexpected Results?

了解 MySQL 中的 CASE..WHEN 语句

使用 MySQL 时,CASE..WHEN 语句是一个很有价值的评估工具多个条件并根据这些条件返回不同的值。但是,有一些特定的方法可以正确使用它以避免意外结果。

考虑以下查询:

SELECT
   CASE course_enrollment_settings.base_price
    WHEN course_enrollment_settings.base_price = 0      THEN 1
    WHEN course_enrollment_settings.base_price<101      THEN 2
    WHEN course_enrollment_settings.base_price>100 AND   
                      course_enrollment_settings.base_price<201 THEN 3
        ELSE 6
   END AS 'calc_base_price',
   course_enrollment_settings.base_price
FROM
    course_enrollment_settings
WHERE course_enrollment_settings.base_price = 0
登录后复制

该查询旨在获取基本价格为零的课程并有条件分配基于价格范围的“calc_base_price”值。但是,对于 base_price 0 的所有行,结果都会返回“3”。

要解决此问题,删除 CASE 之后的列名称至关重要:

SELECT
   CASE
    WHEN base_price = 0      THEN 1
    ...
    END
登录后复制

这可确保 CASE语句正确评估条件并为每行返回适当的值。 CASE 语句有两种形式:一种带有目标列名,另一种不带目标列名。在这种情况下,需要使用搜索条件的第二种形式。

以上是如何正确使用MySQL的CASE..WHEN语句以避免出现意外结果?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板