代码之家  ›  专栏  ›  技术社区  ›  Ken

MySQL GROUP BY,并测试分组项

  •  0
  • Ken  · 技术社区  · 15 年前

    我有一个这样的问题:

    select a, b, c, group_concat(d separator ', ')
    from t
    group by a;
    

    这似乎很管用。据我所知(请原谅,我是MySQL新手!),它将返回以下行:

    • a 价值
    • 为每个人 价值,一 b c
    • 也适用于每个 d 值,连接成一个字符串

    这是我想要的,但我也要检查每个 ,和 总是一样的 价值。

    我的第一个想法是比较:

    select count(*) from t group by a, b, c;
    

    select count(*) from t group by a;
    

    谢谢!

    1 回复  |  直到 15 年前
        1
  •  1
  •   OMG Ponies    15 年前

    依赖的问题 MySQL's Hidden Columns functionality is spelled out in the documentation :

    使用此功能时,每个组中的所有行对于按部分从组中写入的列应具有相同的值。服务器可以自由返回组中的任何值,因此除非所有值都相同,否则结果是不确定的。

    b c 是任意的——不能依赖结果一致地返回相同的值,并且看到行为的可能性随着可能的值的数量而增加 / 可以回来。所以没有什么价值可比 GROUP BY a GROUP BY a, b, c