首頁 > 資料庫 > mysql教程 > 如何正確使用MySQL的CASE..WHEN語句以避免意外結果?

如何正確使用MySQL的CASE..WHEN語句以避免意外結果?

Susan Sarandon
發布: 2024-12-31 18:56:10
原創
907 人瀏覽過

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
登入後複製

此查詢旨在取得基本價格為零的課程並有條件分配基於價格範圍的「ca​​lc_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
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板