好傢伙,我試圖讓不同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 –