Sql函数计数和求和与Php

n1bvdmb6  于 2023-02-03  发布在  PHP
关注(0)|答案(1)|浏览(105)

我需要从我的表中获取数据。我只想要过去24小时的数据,计算发生次数,最多60个最后的信息。
TABLE超级表

id username date_post
---------------------
11  james   111105487
10  luke    110105474
9   james   110105400
8   john    111105486
7   james   111100487
6   luke    110105174
5   john    110205474

我想要这样的

james(3)
luke(2)
john(2)

代码:

<?php
$delay_search=strtotime("+1 day");
$max_user_get=60;
$sql_total = "
SELECT username,COUNT(*) as count 
FROM super_table where date_post <'$delay_search' 
GROUP BY username 
ORDER BY id DESC LIMIT 0,$max_user_get;
";
$temp='';

$result_total = $conn->query($sql_total);
$nb_total=$result_total->num_rows;
while($row = $result_total->fetch_assoc()) 
{
    $username=$row["username"];
    $total_post=$row['count'];  
  
  /*Edit*/
   $temp.='User :'.$username.'('.$total_post.')';

}   
 echo $temp;
?>
gjmwrych

gjmwrych1#

我只想要过去24小时的数据
这可以通过from_unixtime将int转换为date来完成

FROM_UNIXTIME(date_post) > NOW() - INTERVAL 1 DAY

计数发生次数,最多60个最后信息

limit 60

最终质询:

select username,
       count(*)
from super_table
where FROM_UNIXTIME(date_post) > NOW() - INTERVAL 1 DAY
group by username
order by count(*) desc
limit 60;

不需要

$delay_search=strtotime("+1 day");
$max_user_get=60;

相关问题