我想查詢來解決這個問題@查找組重複計數的用戶
防爆:
id ip
1 1.2.3.3
2 1.2.3.3
3 1.23.42.2
4 4.4.2.1
我找
ip count ids
1.2.3.3 2 1,2
1.23.42.2 1 3
4.4.2.1 1 4
我與查詢嘗試 -
select count(id) ,ip , id from table group by ip ;
它不工作。如何解決這個問題。
我想查詢來解決這個問題@查找組重複計數的用戶
防爆:
id ip
1 1.2.3.3
2 1.2.3.3
3 1.23.42.2
4 4.4.2.1
我找
ip count ids
1.2.3.3 2 1,2
1.23.42.2 1 3
4.4.2.1 1 4
我與查詢嘗試 -
select count(id) ,ip , id from table group by ip ;
它不工作。如何解決這個問題。
使用group_concat將做到這一點:
SELECT ip, count(id) as count, group_concat(cast(id as char)) as ids
FROM table
GROUP BY ip
要選擇的組作爲文本列,將有例如「1,2」 文本。如果是這樣的話的ID,你必須沿着穿越的
所有結果的方式去select ip, count(id) from table group by id
由記得@ip和@count,然後對每一行獲取所有標識該組
select id from table where ip = @ip
遍歷由內nvarchar的另一遊標和存儲結果所有結果的遊標@ids變量,會看如'1,2'
那麼你最好輸出各行作爲 @ip,@count主要遊標循環,@ids
可以使用MySQL的函數GROUP_CONCAT:
select ip, count(id) as count, GROUP_CONCAT(id) AS ids
from table
group by ip ;
你爲什麼寫'cast(id爲char)'而不是'id'? – 2010-03-05 17:06:00
@True Soft在phpMyAdmin下,我有一個blob字段,用於代替char字符,因此可以給出正確的結果 – Patrick 2010-03-05 17:47:50