如果匹配任何条件,显示结果?

时间:2012-03-28 14:59:36

标签: mysql sql select

这让我疯了。我在我的SQL查询中检查了3个条件。如果其中任何一个匹配,我想获取结果campaign_id

SELECT `campaign_id` FROM `tracking` 
WHERE `user` = 'username@domain.net' AND `attempts` > '5' 
    AND `clicked` > '0' AND `shared` > '0'

据我所知,它现在的工作方式是必须匹配所有条件。如果campaign_id符合 ANY 的条件,如何显示{{1}}的结果?

3 个答案:

答案 0 :(得分:3)

AND更改为OR。但仅限于您想要的部分,或者使用括号

SELECT `campaign_id` FROM `tracking` 
WHERE `user` = 'username@domain.net' AND (`attempts` > '5' 
    OR `clicked` > '0' OR `shared` > '0')

基本上,您希望指定的用户AND使用内部OR

组合在一起的任何其他过滤器

答案 1 :(得分:2)

如果你想要ANY而不是ALL,那么你需要用OR运算符替换AND运算符。如果你需要混合AND和OR,那么请确保你获得正确的优先权;最简单的方法是在括号中包含相关条件。例如,如果您总是希望匹配用户,然后是任何其他条件,那么

SELECT `campaign_id` 
FROM `tracking` 
WHERE `user` = 'username@domain.net' 
  AND (   `attempts` > '5' 
       OR `clicked` > '0' 
       OR `shared` > '0'
      )

答案 2 :(得分:0)

如果您想要在特定用户旁边限制attemptsclickedshared,请执行以下操作:

SELECT `campaign_id` 
FROM `tracking` 
WHERE `user` = 'username@domain.net' 
    AND (`attempts` > '5' 
    OR `clicked` > '0' 
    OR `shared` > '0')