MySQLi - 在一列中查找所有匹配项,是否可能?

时间:2015-03-15 19:09:26

标签: php mysqli

我需要使用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完成? 感谢。

1 个答案:

答案 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