Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/236.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用MySQL计算唯一IP地址_Php_Mysql - Fatal编程技术网

Php 使用MySQL计算唯一IP地址

Php 使用MySQL计算唯一IP地址,php,mysql,Php,Mysql,我正在尝试使用MySQL计算唯一IP地址的总数,这是我查询的结果: SELECT COUNT(`id`) as `count` FROM `pageviews` WHERE `timestamp` BETWEEN '1299675600' AND '1299762000' GROUP BY `client_ip` 我唯一的问题是,计算IP地址产生的结果,MySQL中是否有方法只计算每一批IP地址,对它们进行唯一的计数,而不是将它们分组然后进行计数 干杯。您可以使用COUNT(DISTINCT…

我正在尝试使用MySQL计算唯一IP地址的总数,这是我查询的结果:

SELECT COUNT(`id`) as `count` FROM `pageviews` WHERE `timestamp` BETWEEN '1299675600' AND '1299762000' GROUP BY `client_ip`
我唯一的问题是,计算IP地址产生的结果,MySQL中是否有方法只计算每一批IP地址,对它们进行唯一的计数,而不是将它们分组然后进行计数

干杯。

您可以使用
COUNT(DISTINCT…
来计算唯一ip地址的数量。我不完全确定您的问题是什么,但您可以尝试一下,或者根据您的需要进行调整:

SELECT COUNT(DISTINCT client_ip) as `count`
FROM `pageviews`
WHERE `timestamp` BETWEEN '1299675600' AND '1299762000'

下面应该可以做到这一点:

SELECT COUNT(DISTINCT `client_ip`) as `count` FROM `pageviews` WHERE `timestamp` BETWEEN '1299675600' AND '1299762000'
不需要按客户端ip分组,因为您已经可以使用distinct关键字查询distinct值。

关于:

select count(distinct client_ip) as total_num
from pageviews
where `timestamp` BETWEEN '1299675600' AND '1299762000'

在这里,您将计算
不同的
ip地址的数量——这应该是您想要的;并且不再需要
group by
子句。

您可以在COUNT()中使用DISTINCT:


您是否尝试过
选择不同的
第一条评论,最佳答案。干杯
SELECT COUNT(DISTINCT client_ip) as `count` 
FROM `pageviews` WHERE `timestamp` BETWEEN '1299675600' AND '1299762000'