我正在尝试构建一个查询,该查询将基于一系列过滤器从数据库中提取事件:baseId、title、age 和它将发生的天数。
这是我到目前为止所得到的:
SELECT * FROM [Events]
WHERE BaseId = 574 AND Title LIKE '%occurs%' AND MinAge <= 5 AND MaxAge >= 5
AND (FreqType = 8 AND (FreqInterval & 2) = 2)
OR (FreqType = 8 AND (FreqInterval & 4) = 4)
没有 OR 线,它拉得很好。使用 OR 行,它不再关心 BaseId、Title、MinAge 和 MaxAge 列。好吧,它确实如此,但只到 OR 所在的位置......然后它会在 OR 之后拉出所有匹配项(无论前面的 AND 语句如何)。
如何让查询按每列过滤,然后按我想要的每个 FreqInterval 过滤?我可能有不止 2、4... 可能有 1、2、4、8、16、32 或 64 的任意组合。
或者,有没有办法AND (FreqType = 8 AND (FreqInterval & 6) = 6)
使用 FreqInterval 的 SUM?我不完全理解按位查询。