我可以使用单个SQL查询执行此操作吗?

Sic*_*pie 1 php mysql sql

好的,我有一个这样的表:

id  query  results  ip
---------------------------------
1   milk   17       10.10.10.1
2   milk   17       10.10.10.1
3   milk   17       10.10.10.2
4   bread  8        10.10.10.2
5   bread  8        10.10.10.2
6   cheese 12       10.10.10.1
Run Code Online (Sandbox Code Playgroud)

我现在有这个问题:

SELECT COUNT(DISTINCT(id)) as cnt, query, results, ip
FROM table
GROUP BY query
ORDER BY results ASC
LIMIT 20
Run Code Online (Sandbox Code Playgroud)

此查询返回以下结果:

count  query  results
---------------------
2      bread  8
1      cheese 12
3      milk   17
Run Code Online (Sandbox Code Playgroud)

我需要扩展该查询(或完全重做)以返回类似这样的内容,最好使用嵌套数组中的IP作为查询数组的一部分:

query  count  results  ip
--------------------------------
bread  2      8        10.10.10.2 (2)
cheese 1      12       10.10.10.1 (1)
milk   3      17       10.10.10.1 (2)
                       10.10.10.2 (1)
Run Code Online (Sandbox Code Playgroud)

我将使用php输出,将带有该计数的IP列表附加到查询计数显示(单击以显示/隐藏填充了信息的模态).

获取我需要的数据的任何方向或帮助都会很精彩!

Sco*_*ers 6

不,你不能得到那个结果.您有两种选择:

  1. 获取每个IP地址在自己的行上,并通过PHP中的结果智能地循环.

  2. 使用GROUP_CONCAT() MySQL函数在一个字段中将IP地址连接在一起,并解析该字段以在PHP中将它们分开.