where に複数の OR を含むクエリがあります。
私が抱えている問題は、結果の行をマークして、各結果がどこから来たのかを知ることができるようにすることです。
例えば:
select * from people where age>10 or weight>100 or status in ('active','paying','dead')
したがって、これは人のリストを返します。
結果に含まれる人々のリストを繰り返し処理するとき、なぜその特定の人物が結果セットに含まれているのかを知る必要があります。
したがって、各結果に理由を付けて「タグ付け」または「マーク」できれば、次のようなことができます。
if (person.reason=="age") then do something...
と
if (person.reason=="active") then do something else...
結果を反復処理するときに、クエリからロジックを再度複製したくありません (クエリは動的に構築され、非常に複雑になる可能性があります)。
これは可能ですか?
(ところで、Doctrineを使用してPHPでこれを行っています)