1

我的 SQL 语法可能有点生疏,所以我自己几乎不可能解决这个问题。我有一个典型的 MySQL 安装,带有下表“历史记录”。

userid        ip
----------- ----------
1            123.123.123.123  
1            123.123.123.123    
1            111.111.111.111    
2            213.213.213.213
2            214.214.214.214
2            215.215.215.215
3            163.123.121.123
4            111.222.121.212

本质上,我在某个用户 ID 下记录某些内容以及他们当前使用的 IP 地址(以及其他内容,但这不是必需的)。但是,我要完成的最后一项任务是为每个用户创建一个列表,其中包含已使用多少 IP。在这种情况下,最终结果将是。

userid       ipcount
-----------  ----------  
1            2  
2            3
3            1
4            1

我知道这会以某种方式实现,但我是 SQL 的新手(我能够得到计数,但不能按用户 ID 对其进行分组)。我可以在 PHP 中快速执行此操作,但这对服务器来说是额外的过载(我目前有大约 5K 条目)。SQL 正是为了做到这一点......

多谢你们。:)

4

1 回答 1

2
SELECT userid, COUNT(DISTINCT ip) AS ipcount
  FROM yourtable
 GROUP BY userid
于 2012-05-03T02:12:53.043 回答