我想查询来解决这个问题@查找组重复计数的用户
防爆:
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