0
我想弄清楚如何篩選我的輸出爲「組合」的情況。我的前兩個陳述效果很好,並讓我獲得我想要的課程(例如,在滑雪者的能力水平上的滑雪板課程+未分級的私人課程)。我的第三條語句(inPreferredLessonType = 3,即滑雪板或滑雪板)無法正確過濾輸出設置 - 我將獲得任何滑雪板課程或滑雪課程,其各種能力水平與滑雪者的兩個(單獨存儲的)能力水平。不是正確的想法,並且讓用戶感到困惑。MySQL複雜當過濾器與案例
我想要的只是在滑雪者的滑雪板能力級別上滑雪板課程+在滑雪者的滑雪能力級別上的滑雪課程+未分級的私人課程。請幫忙!
(... SELECT語句的其餘部分...)
CASE
WHEN inPreferredLessonType = 1
THEN program.nBool_isSnowboard = 0 AND
(program.n_ability_level = inSkiAbilityLevel OR program.n_ability_level = 0)
WHEN inPreferredLessonType = 2
THEN program.nBool_isSnowboard = 1 AND
(program.n_ability_level = inSnowboardAbilityLevel OR program.n_ability_level = 0)
WHEN inPreferredLessonType = 3
THEN program.n_ability_level = inSkiAbilityLevel
OR program.n_ability_level = inSnowboardAbilityLevel
OR program.n_ability_level = 0
END
(...過濾器語句,ORDER BY等的其餘部分)
是否在'WHERE'子句中檢查條件? – ydoow
是的,非常複雜的WHERE子句,我沒有在這裏包含它,因爲我已經調試了其餘的東西。 –
'WHEN inPreferredLessonType = 3 \t THEN(program.nBool_isSnowboard = 0 AND program.n_ability_level = inSkiAbilityLevel) \t \t \t OR \t \t(program.nBool_isSnowboard = 1 AND program.n_ability_level = inSnowboardAbilityLevel) \t \t \t OR \t \t \t program.n_ability_level = 0' –