一連のフィルター(baseId、title、age、および発生日数)に基づいてDBからイベントをプルするクエリを作成しようとしています。
これが私がこれまでに得たものです:
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を使用してを実行する方法はありますか?ビット単位のクエリを完全には理解していません。