我需要使用PHP在一列中获取所有匹配项。
示例:
我的表:
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完成? 感谢。
答案 0 :(得分:2)
我不知道这是否是最好的答案(可能不是)但是这会以你所描述的格式获得所有ips,以及不同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