我需要根据唯一 ip 查找唯一行,然后在单个查询中获取按用户排序的结果。
我正在尝试这种方式
$query="SELECT
COUNT(DISTINCT `userip`) AS `count`,
`userid` AS `userid`
FROM `tablename`
WHERE (`date` >= UNIX_TIMESTAMP(CURDATE())) GROUP BY `userid`";
$result = mysqli_query($connection, $query) or trigger_error(mysqli_error($connection), E_USER_ERROR);
$row = mysqli_fetch_assoc($result);
print_r($row);
这给了我最后一个用户的结果
Array ( [count] => xxx [userid] => last_user);
我需要在单个查询中为每个用户获取此结果
Array (
Array ( [count] => xxx [userid] => first_user);
.
.
Array ( [count] => xxx[userid] => last_user);
)
请看看这是否可以做到,并提出一种方法来做到这一点。 谢谢
编辑
感谢所有答案,解决方案有效我正在检查行而不是结果的查询。
最佳答案
我认为您应该对 userip 和 userid 列都使用 group by。查看以下查询是否适合您。
SELECT COUNT( `userip`) AS `count`, `userid` AS `userid` FROM `tablename` WHERE (`date` >= UNIX_TIMESTAMP(CURDATE())) GROUP BY userid,userip;
关于php - MySQL 根据多种因素计算唯一行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30827409/