【问题标题】:select statement between ignoring condition忽略条件之间的选择语句
【发布时间】:2026-01-25 06:40:02
【问题描述】:

我有这个查询 .. 它总是选择所有带有 between 条件的行,忽略之前的类型条件

SELECT * FROM courses where course_type = 'ad' and (daily between 0 and 5000) OR (monthly between 0 and 5000)

它总是返回忽略这个的所有行

course_type = 'ad'

我错过了什么?我知道这将是一些愚蠢和原始/基本但我无法集中注意力的多动症正在杀死我加上 2 天不睡觉

提前感谢大家

【问题讨论】:

    标签: php sql where-clause


    【解决方案1】:

    您需要了解如何解析布尔表达式。您的表达式需要额外的括号:

    where course_type = 'ad' and 
          ( (daily between 0 and 5000) OR (monthly between 0 and 5000) )
    

    在您更好地理解布尔表达式之前,我建议您在混合 ANDs 和 ORs 时始终使用显式括号。

    【讨论】: