MySQLi - 在一列中找到所有匹配项,这可能吗?

MySQLi - find all matches in one column, is it possible?

我需要使用 PHP 在一列中获取所有匹配项。

示例:

我的table:

IP adress           UserID
192.168.2.1         1
192.168.2.1         2
192.168.2.2         3
192.168.2.1         3
192.168.2.3         4
192.168.2.3         5
192.168.2.4         6

(我总是在用户登录时记录IP地址,所以每个用户id可以有更多的IP地址)

输出我需要的:

IP adress: 192.168.2.1 uses UserID´s: 1, 2, 3
IP adress: 192.168.2.3 uses UserID´s: 4, 5

(仅当同一 IP 地址使用更多用户时)

可能吗?也许将所有行都抓取到 PHP 然后尝试查找匹配项,或者可以由 MySQLi 完成吗? 谢谢

我不知道这是否是最佳答案(可能不是),但这将为您提供您所描述格式的所有 ip,以及不同 ip 上 id 的出现次数。

SELECT `ip` AS ip1,  GROUP_CONCAT(`id` SEPARATOR ', ') AS ids, 
     (SELECT COUNT(`ip`) FROM `table` WHERE `ip` = ip1) AS appearances 
FROM `table` GROUP BY ip