2010-10-22 42 views
1

我有一個表(統計)與列用戶,日期(日期時間),頁面和IP。 我有這個疑問:MYSQL用戶統計查詢幫助?

SELECT * FROM statistics WHERE page LIKE '%page_name' ORDER BY date DESC LIMIT 30. 

這是確定以顯示訪問該網頁中的所有用戶。但我想顯示獨特的ips每天,像DISTINCT ip (per day) 我不知道如何添加'每一天'部分...

任何想法? :)

回答

0

MySQL的GROUP BY

SELECT COUNT(DISTINCT(ip)), DATE(date) 
FROM statistics 
GROUP BY date 
ORDER BY date DESC

如果你希望所有的列表每個日期的唯一IP地址,您需要將它們全部檢索後進行分組,例如

$sql = "SELECT DISTINCT(ip) AS ip, DATE(date) 
     FROM statistics 
     ORDER BY date DESC"; 
$res = mysql_query($sql); 
$ips = array(); 
while ($r = mysql_fetch_object($res)) { 
    $ips[$r->date][] = $r->ip; 
} 

foreach ($ips as $date => $list) { 
    // echo the $date 
    foreach ($list as $ip) { 
    // go through all the ips 
    } 
}
0

類似的東西。如果你想顯示獨特的IP地址,你可以使用量應該做的工作

SELECT COUNT(ip), DATE_FORMAT(date, '%Y-%m-%d') AS day 
FROM statistics WHERE page LIKE '%page_name' 
GROUP BY day ORDER BY day DESC LIMIT 30