首页 > 解决方案 > 接收来自某个主机的 MySQL 请求计数

问题描述

我想获取主机上的 MySQL 连接数,使用

SELECT COUNT(*) FROM information_schema.PROCESSLIST where host='hostname';

但是我的主机在每次连接后都有一个不同的数字,看起来像端口#s。这使得无法匹配主机名。在不考虑这些端口的情况下,我该怎么做才能匹配主机?

他们看起来像:

Hostname:1212

Hostname:1214

标签: mysql

解决方案


您可以尝试创建一个 MySQL 视图,该视图将包含您的数据以及一个名为 host 的新列。该新列的值将基于您当前拥有的主机值,例如主机名:1234,它将使用子字符串或更好的子字符串索引从主机:1234 到主机。

试试这个 SELECT 语句,看看它是否有效

SELECT COUNT(*) FROM information_schema.PROCESSLIST where SUBSTRING_INDEX(host, ":", 1)='hostname';

然后您可以执行 GROUP BY 并正确获取 COUNT(host)。


推荐阅读