2012-03-28 9 views
0

これは私をナットにしています。私は私のSQLクエリで3つの条件をチェックしています。それらのいずれかが一致した場合、私は結果campaign_idつかむしたい:私が言うことができるものからは、条件に一致する場合は結果を表示しますか?

SELECT `campaign_id` FROM `tracking` 
WHERE `user` = '[email protected]' AND `attempts` > '5' 
    AND `clicked` > '0' AND `shared` > '0' 

を、それが今で動作する方法は、それがすべての条件に合致しなければならないです。条件のANYと一致する場合、どのようにしてcampaign_idの結果を表示させることができますか?

+1

おそらく 'AND'sを' OR'sに変更しますか? – bububaba

+0

私は同じと思った。それは他のユーザーのためのレコードを引っ張った。 – john

答えて

3

ANDORに変更してください。しかし、唯一のあなたがANYをしたい場合は論理和は、括弧基本的に

SELECT `campaign_id` FROM `tracking` 
WHERE `user` = '[email protected]' AND (`attempts` > '5' 
    OR `clicked` > '0' OR `shared` > '0') 

を使用して、あなたが指定したユーザーAND内部OR sで

+0

これにより、ユーザーはORの一部になります。それは私が探しているユーザーと一致する必要があります。あなたが今持っている方法ではなく、3つではなく4つの条件に一致することができます。 – john

+0

@john申し訳ありませんが、私は上記の声明を見て更新しました。今すぐ働かなければならない –

+0

かっこで決して気にしないでください。助けてくれてありがとう! – john

2

を使用してグループ化されているこれらの他のフィルタのいずれかを希望したい部品用ALLとは対照的に、AND演算子をOR演算子で置き換える必要があります。 ANDとORを組み合わせる必要がある場合は、優先権を得てください。これを行う最も簡単な方法は、カッコ内に関連する条件をラップすることです)。たとえば、あなたは常にユーザーを一致させたい場合は、その後、他の条件のいずれか、その後

SELECT `campaign_id` 
FROM `tracking` 
WHERE `user` = '[email protected]' 
    AND ( `attempts` > '5' 
     OR `clicked` > '0' 
     OR `shared` > '0' 
    ) 
0

ちょうどその特定のユーザーが行っている間、あなたがattemptsclickedまたはsharedのいずれかを制限したい場合は、のようなものを実行します。

SELECT `campaign_id` 
FROM `tracking` 
WHERE `user` = '[email protected]' 
    AND (`attempts` > '5' 
    OR `clicked` > '0' 
    OR `shared` > '0') 
関連する問題