这让我疯了。我在我的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}}的结果?
答案 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)
如果您想要在特定用户旁边限制attempts
,clicked
或shared
,请执行以下操作:
SELECT `campaign_id`
FROM `tracking`
WHERE `user` = 'username@domain.net'
AND (`attempts` > '5'
OR `clicked` > '0'
OR `shared` > '0')