我需要使用 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完成?谢谢。
我不知道
这是否是最佳答案(可能不是),但这将为您提供您所描述格式的所有 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