mysql分组查询
SELECT查询是MySQL中很重要的方法!
使用方式一:
SELECT username,password FROM user1;
使用方式二:
SELECT user.username,user.password FROM user1; //在以后的开发中经常遇到这种方式,将不同表中的数据筛选出来
使用方式三:别名
SELECT username AS uname FROM user1; //自定义名称加入AS,对之后字段出现的顺序,和字段的别名都有很重要的影响,所以一定要慎重 查询结果分组 GROUP BY[GROUP BY {col_name|position} [ASC|DESC],…]
ASC:升序,默认
DESC:降序
position:SELECT语句中列的序号
eg. SELECT sex FROM users GROUP BY sex;//对users中的sex按sex进行分组
eg. SELECT * FROM users GROUP BY 1;//1表示SELECT语句中第一个出现的字段,即位置,建议BY后写列名称,不写位置
注意:如果存在相同的值(例如上面的age可能有多个相同的值),只会保留一个。但使用ORDER BY 就不会省略HAVING 分组条件在GROUP BY分组时可以带有分组条件
如果有HAVING作为分组条件,后面必须跟聚合函数(MAX最大值,MIN最小值,AVG平均值,SUM求和,count()计数…只有一个返回值), 或者保证后面跟的字段出现在这条SELECT语句当中
eg. SELECT sex,age FROM users GROUP BY sex HAVING age>35;
eg. SELECT sex FROM users GROUP BY 1 HAVING count(id)>=2; ORDER BY:对查询的结果进行排序多个排序条件之间以逗号相隔,在前面的排序条件满足时,忽略后面的排序条件,否则按照后面的排序条件进行排序
eg. SELECT * FROM users ORDER BY age,id DESC; //先按年龄的升序(默认顺序)排列,再按id的降序(DESC)排列 LIMIT:限制查询结果返回的数量[LIMIT {[offset,] row_count|row_count OFFSET offset}]
SELECT语句从0开始编号
offset:偏移量
row_count:返回结果的数目
eg. SELECT * FROM users LIMIT 2; // 从第一条开始(第一个为0),返回两条
SELECT * FROM users LIMIT 2,3 ;//从第三条开始(第一个为0),返回三条