首页 > 解决方案 > MySQL:如何使用 ONLY COUNT() 和不使用 WHERE 子句获取 24 小时内发生的事件计数

问题描述

这是我的场景:

我正在收集 ping 我的服务器的客户端的 IP 地址以及在 MySQL 中 ping 的时间。

Columns:
IP_address, Time_of_Ping(date - hr - min - sec)

在任何给定时间点,我都想知道过去 24 小时内有多少客户端与我的服务器进行了通信。

请注意:我知道这可以通过带有 where 子句的简单 select 语句来完成。

但是为什么我在论坛上发布这个只是为了知道:这可以用 count() 来完成吗?我的意思是在 count() 中写一些条件而不使用 where 子句?

提前致谢

标签: mysqlsqlcount

解决方案


您可以利用 MySQL 在数字上下文中将布尔表达式视为 1 或 0 并使用SUM

SELECT SUM(Time_of_Ping > NOW() - INTERVAL 24 HOUR)
FROM your_table

推荐阅读