条件が重ならない場合(つまりは排他的である)あなたがこれを行うことができます。ユーザーが複数の条件に一致する場合は、重複を取得しますが
SELECT userID, 'condition1'
FROM Users
WHERE (condition1)
UNION ALL
SELECT userID, 'condition2'
FROM Users
WHERE (condition2)
UNION ALL
SELECT userID, 'condition3'
FROM Users
WHERE (condition3)
ORDER BY userID
。場合によってはこれが便利かもしれませんが、重複を除外する必要がある場合は、次のようにしてください。
SELECT userID, 'condition1'
FROM Users
WHERE (condition1)
UNION ALL
SELECT userID, 'condition2'
FROM Users
WHERE (condition2) AND NOT (condition1)
UNION ALL
SELECT userID, 'condition3'
FROM Users
WHERE (condition3) AND NOT (condition2) AND NOT (condition1)
ORDER BY userID
これはSQLの問題ではなく、厄介な問題です。あなたのアプリを再考してください。 –
@Leandro、私はあなたのコメントを本当に理解していない、私はSQLクエリで具体的な目標を達成する方法を尋ねた、どのように "問題の種類"は関係がありますか? –
@YuvalA。 - あなたは、そのSQLで無関係なステートメントを(効果的に)実行しているか、またはアプリケーションがその区別をするための十分な情報を含んでいないので、重要な場所です。代わりに、アプリケーション層で適用する必要があるデータベースでフィルタリングを適用しています。現時点では、SQLとアプリケーションを同期して維持する必要があります(条件は一致しなければなりません)。アプリケーションに十分な情報を提供して独自のフィルタリングを行うと、それらは独立したものになります。 –