Php MySQL计数、分组计数和分组依据一起

Php MySQL计数、分组计数和分组依据一起,php,mysql,Php,Mysql,我有一个MySQL表,如下所示 IP Host Label BotName 1 A good aa 1 A good aa 2 C good bb 3 C bad cc 4 D bad dd 4 D bad ee 5 E good ff 5 E good gg count Host BotName Type 2 A aa good 1 C

我有一个MySQL表,如下所示

IP Host Label BotName
1  A    good    aa
1  A    good    aa
2  C    good    bb
3  C    bad     cc
4  D    bad     dd
4  D    bad     ee
5  E    good    ff
5  E    good    gg
count Host BotName  Type
2     A    aa       good
1     C    bb       good
1     C    cc       bad
2     D    dd,ee    bad
2     E    ff,gg    good
我想得到如下输出

IP Host Label BotName
1  A    good    aa
1  A    good    aa
2  C    good    bb
3  C    bad     cc
4  D    bad     dd
4  D    bad     ee
5  E    good    ff
5  E    good    gg
count Host BotName  Type
2     A    aa       good
1     C    bb       good
1     C    cc       bad
2     D    dd,ee    bad
2     E    ff,gg    good
条件是:

  • 按主机和标签对IP进行计数
  • 如果僵尸名称不同,请使用逗号将其连接起来
  • 下面是我尝试过的,但没有得到预期的结果

    $result2 = mysql_query("SELECT GROUP_CONCAT(BotName) name FROM (SELECT *, COUNT(IP) FROM mytable GROUP BY Host,Label)q");
    
    试试这个

    SELECT COUNT(*) AS `count`,
           HOST,
           GROUP_CONCAT(distinct boatname) BotName,
           label as Type
    FROM temp
    GROUP BY host,label
    

    计数和分组\u CONCAT将获得值,但您需要按主机和标签/类型字段分组

    SELECT  COUNT(*) AS `count`, Host, GROUP_CONCAT(DISTINCT Botname) AS Botname, label AS type
    FROM name
    GROUP BY Host, type
    

    我怀疑你想要一个与众不同的答案。@Sadikhasan:非常感谢你,Sadikhasan,你的答案与Kickstart的答案非常相似,而且工作得非常完美。我已经接受了他的回答。谢谢你的小提琴。:)您没有主键。这是一个问题。我用sql fiddle发布了答案。您检查过了吗?谢谢,效果很好:)