希望你們能幫忙,因爲這一直困擾着我幾天。我試圖從表中獲取唯一行的總數。例如,表中的數據看起來像這樣;從MySQL中選擇獨特的行
user_1 | user_2 | date_added | date_removed
--------|--------|---------------------|---------------------
1 | 2 | 2016-09-20 15:51:45 | 2016-09-24 09:15:32
1 | 3 | 2016-09-21 10:16:03 | 2016-09-29 00:46:44
6 | 1 | 2016-09-23 05:48:59 | 0000-00-00 00:00:00
1 | 3 | 2016-09-30 09:57:16 | 0000-00-00 00:00:00
我想找到的是行的總數爲user_id出現在(或列user_1
或列user_2
),那裏也只是爲用戶即配對單一入口(用戶配對總會在相同的欄中)和date_removed
= 0000-00-00 00:00:00
。
所以,如果我搜索上面的表user_id
「1」,總的是「1」。 (只有第三行符合搜索標準); 其中user_id
'2'的搜索等於'0'; '3'等於'0'的 user_id
; '6'將等於'1'的 user_id
;
希望是有道理的。任何幫助或指針將不勝感激。
---- ----編輯
這是查詢我到目前爲止,我已經嘗試過多種方法INC加入等等,但是這已經讓我最接近的,到目前爲止,它不是最乾淨方式確定!
SELECT COUNT(*) AS `count`
FROM `table`
WHERE (`user_1` = '1' OR `user_2` = '1')
GROUP BY `user_1`, `user_2`
HAVING `count` < '2' AND MAX(`date_removed`) < '0000-00-00 00:00:01'
然而,當更多的數據出現在表,查詢的結果是這樣的:
count
-----
1
1
1
如果我想讓它顯示:
count
-----
3
從您的解釋,它看起來像你只在user_1上搜索。但它聽起來像你想在user_1和user_2中搜索user_id。如果是這樣的話,1的user_id將導致2的計數。因此,6或1的user_id將匹配第3行.1的user_id將匹配第3和4行....你能解釋更多詳情? – TimBrownlaw
user_id將在兩列(user_1和user_2)中進行搜索。只有第3行將匹配用戶1的搜索要求,因爲儘管第4行對於date_removed具有「0000-00-00 00:00:00」,用戶配對(1&3)也出現在第2行。 – user3053392
您可以在質疑你已經嘗試過的SQL?正如@ user3053392指出的那樣,理解是可以找到多於一行的行。另外,當我user_id = 3時,它也會返回1(第4行),據我瞭解。我認爲我們錯過了一些東西。 – Tom