SELECT不符合条件

时间:2019-08-19 22:55:51

标签: sql

我需要一个查询,该查询可以在日期条件之内恢复约会,或者如果hc_id与我提供的匹配,并且stop_date为NULL,则无论如何我都希望它返回。现在,我的查询适用于我的大多数情况,除了stop_date为NULL时,什么也不会恢复。

我无法使OR语句像我认为的那样起作用。

SELECT DISTINCT r.appt_type_id, r.frequency, r.frequency_type, r.frequency_data, r.start_date, r.end_date, r.stop_date as 'stop_recurring'
        FROM appt_recurring r
        WHERE r.hc_id = :hc_id
        AND (r.start_date >= :start_date
        OR r.stop_date >= :end_date)
        OR r.stop_date = NULL
        ORDER BY r.start_date ASC

这给我带来的约会仅是与第4行的第一个AND行匹配的,而与括号位置或之后的行无关。

1 个答案:

答案 0 :(得分:2)

= NULL始终失败。我想你想要

WHERE r.hc_id = :hc_id AND
      r.start_date >= :start_date AND
      (r.stop_date >= :end_date OR
       r.stop_date IS NULL
      )