我有一张桌子,我正在保存访客的IP地址和访问时间。
现在我想以这样的方式查询我的表,它给了我总数。在最后一次访问时从IP地址访问网站。
例如假设这是我的表:
ip time ------------------------------- 1.1.1.1 23-feb-2016 09:40
1.1.1.1 24-feb-2016 09:45
1.1.1.1 25-feb-2016 09:50
1.1.1.2 26-feb-2016 09:55
1.1.1.2 27-feb-2016 10:00
现在我希望我的结果是这样的:
ip time count ---------------------------------------- 1.1.1.2 27-feb-2016 10:00 2
1.1.1.1 25-feb-2016 09:50 3
我正在使用此查询:
$query = "SELECT ip, time, COUNT(*) as count FROM ip_table GROUP BY ip ORDER BY time DESC";
但它没有从特定的IP地址给我最后一次访问时间。
我的输出如下:
答案 0 :(得分:2)
试试这个。它给你最后一次访问时间
SELECT ip, MAX(time) AS 'time', COUNT(*) as count
FROM ip_table
GROUP BY ip
如果您想按所有个人ID的总体最长时间排序,那么您可以按时间顺序使用
SELECT a.id, a.time, a.`count` FROM
(
SELECT ip, MAX(time) AS 'time', COUNT(*) as count
FROM ip_table
GROUP BY ip
)as a
ORDER BY time DESC;
链接JSFiddle
答案 1 :(得分:0)
试试这个
SELECT ip, MAX(time), COUNT(*) as count
FROM ip_table
GROUP BY ip;
无需按时间顺序排列。试一试,看看它是否适合你。