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' –