• 中文
    • English
  • 注册
  • 查看作者
    • 4-8:MySQL group by语句对查询结果分组

      查询结果分组的语法结构:

      [GROUP BY {col_name | position}] [ASC | DESC],...]

      比如对性别进行分组:

      mysql> SELECT sex FROM users GROUP BY sex;
      +------+
      | sex  |
      +------+
      | NULL |
      |    0 |
      +------+
      2 rows in set (0.01 sec)

      分组结果为NULL和0,因为所有的用户只有NULL和0这两个值:

      mysql> SELECT sex FROM users;
      +------+
      | sex  |
      +------+
      |    0 |
      |    0 |
      |    0 |
      |    0 |
      |    0 |
      |    0 |
      |    0 |
      | NULL |
      +------+
      8 rows in set (0.00 sec)

      另外BY后面除了可以直接写名字,还可以写位置,比如:

      mysql> SELECT sex FROM users GROUP BY 1;
      +------+
      | sex  |
      +------+
      | NULL |
      |    0 |
      +------+
      2 rows in set (0.00 sec)

      但是并不推荐这种方式

      ps.  看到这里的时候,并没有理解1的作用,在问答区找到了答案:

      问:关于1的作用到底是什么?

      答:1不是代表id,是代表SELECT sex….语句中的sex,所以这里的1其实就是sex的意思;如果SELECT后面跟多个字段,比如username,sex两个字段,如果你GROUP BY还是希望用sex字段的话,就要用数字2而不是1了,这是因为sex排在username后面。——摘自Brian_Zhong回答

    • 0
    • 0
    • 0
    • 2.3k
    • 请登录之后再进行评论

      登录

      赞助本站

      • 支付宝
      • 微信
      • QQ

      感谢一直支持本站的所有人!

      单栏布局 侧栏位置: