好家伙,我试图让不同ID的1和5的所有id_user但此查询似乎并没有很好地工作查询不选择不同的值
这是查询:
SELECT DISTINCT(id_user)
FROM post_comment
WHERE (id_user <> 1 || id_user <> 5) AND id_post = 2
此查询选择ID为1和5的用户以及我做错了什么?
好家伙,我试图让不同ID的1和5的所有id_user但此查询似乎并没有很好地工作查询不选择不同的值
这是查询:
SELECT DISTINCT(id_user)
FROM post_comment
WHERE (id_user <> 1 || id_user <> 5) AND id_post = 2
此查询选择ID为1和5的用户以及我做错了什么?
尝试此查询:如果您使用在查询一个或操作者与您同时使用在同一领域的否定not equal to
,在这种情况下
SELECT DISTINCT(id_user)
FROM post_comment
WHERE id_user <> 1 and id_user <> 5 AND id_post = 2
SELECT DISTINCT(id_user)
FROM post_comment
WHERE (id_user <> 1 AND id_user <> 5) AND id_post = 2
,每个记录会被选中。每个记录对于该字段只有一个值,因此the condition is always true
。
考虑扩展您的答案以向提问者解释为什么这会达到所需的结果,可能链接到文档。如此,这仅仅是有用的。 –
我已经扩展并解释了我的答案,请考虑审阅和欣赏:) – Tauseef
你需要AND而不是OR,如果我正确地理解了这个问题。 –
(1. id_user = 1)=> 1 <> 1 || 1 <> 5(false或true = true)---- (2. id_user = 5)=> 5 <> 1 || 5 <> 5(true OR false = true)=> TRUE AND id_post = 2 - 您的查询将返回所有不同的id_user,其中id_post = 2 – Zyku
我为您制作了一个http://sqlfiddle.com/#!2/fbf3a/3 –