mysql - 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 子句?
提前致谢
解决方案
您可以利用 MySQL 在数字上下文中将布尔表达式视为 1 或 0 并使用SUM
:
SELECT SUM(Time_of_Ping > NOW() - INTERVAL 24 HOUR)
FROM your_table
推荐阅读
- javascript - 从 JavaScript 数组中删除特定索引
- python - 如何在 Python 中制作正确的闭包函数?
- java - 我不能从 java 中的另一个实现类继承
- qt - qt快速材质样式控件
- php - PhpStorm 零配置调试不适用于 PHP 5.4.19
- c# - 如何从 MVC 控制器将部分视图错误模式渲染到另一个视图中?
- python - Folium HeatMapWithTime 脚本适用于 Windows,但不适用于 Linux
- php - php chmod 没有返回这样的文件
- r - 如何在 rmarkdown `r print(df$`my variable`)`
- javascript - React - 追加而不是替换状态