mysql查询分组归类函数-group_concat,通常与group_by一起使用

select a.`name`,group_concat(b.name SEPARATOR‘、‘) as persons from `group` as a,`person` as b,`persongroup` as c where a.id = c.groupid and b.id = c.personid group by a.`name`

使用group_concat最终得到的数据效果:重复的name 通过group_by已经过滤掉了,同时被过滤数据的persons字段内容进行了追加。

时间: 2024-08-06 11:51:04

mysql查询分组归类函数-group_concat,通常与group_by一起使用的相关文章

mysql查询分组之后获取结果集总数

相信分页查询对于很多开发者来说都是司空见惯的事情,首先按照查询条件搜索出分页列表数据和总的记录数,获取总的记录数一般是: select count(1) as total from xxx where .......... 这没有问题,但是如果查询的条件有分组group by 那这个时候获取总数就有问题了,这样是获取每个分组的总数 解决办法: select count(1) as total from ( select id from xxx where .... grouy by .....)

MySQL查询-分组取组中某字段最大(小)值所有记录

最近做东西的时候,用到一个数据库的查询.将记录按某个字段分组,取每个分组中某个字段的最大值的所有记录.举栗子来说. 已知分数表“score”,包含字段“id", "name", "course", "score".包含记录如下图所示. 现在,要求查询每个人分数最高的课程的那一条记录.即获得如下结果: 大概思路是,先通过order by将记录按score字段排序,创建临时表.然后按name字段分组查询临时表,即可获得所需查询结果.完整的s

使用mysql函数 group_concat 一点需要注意的

这个函数是一个非常好用的函数,比如我们可以在 进行多对多关联表,进行批量查询的时候可以用到, 比如学生和老师是多对多的关系,如果我们希望查询 指定的一些老师对应的学生有哪些 的时候,一般的情况,我们可能会遍历teacher_id,来一个个获取对应的学生集合,这样的话,效率是很差的,但是有了group_concat函数,你可以不用这样,你可以使用如下方式进行获取 select teacher_id,group_concat(student_id) from teache_student_mappi

mysql多表查询分组统计

表结构: 课程表t_lrm_course 讲师表t_lrm_lecturer 课程与讲师的关联表t_lrm_course_lecturer 目录表t_lrm_catalog 课程与目录的关联表t_lrm_course_catalog 用户表t_osm_user_info 课程授权表t_lrm_authority_user 需求: 需要查询出每个课程对应的讲师.目录和用户的信息. 要求按课程分条展示. SQL语句: select GROUP_CONCAT(DISTINCT(c.catalog_na

mysql的分组查询

1.设置数据库为严格模式: 2.数据准备 # 创建一张部门表 create table emp( id int not null unique auto_increment, name varchar(20) not null, sex enum('male','female') not null default 'male', #大部分是男的 age int(3) unsigned not null default 28, hire_date date not null, post varch

关于mysql函数GROUP_CONCAT

GROUP_CONCAT()是MySQL数据库提供的一个函数,通常跟GROUP BY一起用,具体可参考MySQL官方文挡:http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html#function_group-concat. 语法: GROUP_CONCAT([DISTINCT] expr [,expr ...] [ORDER BY {unsigned_integer | col_name | expr} [ASC |DESC]

mysql 查询语句可以使用的函数总结

mysql 查询语句有时候需要用到函数,但是函数比子查询的效率要高,有时候函数还是很方便的,下面简单总结sql函数具体用法. 1,对数字处理函数avg()count()max()min()sum()2,对字符串的处理合并字符串函数:concat(str1,str2,str3-)比较字符串大小函数:strcmp(str1,str2)获取字符串字节数函数:length(str)获取字符串字符数函数:char_length(str)字母大小写转换函数:大写:upper(x),ucase(x):小写lo

知识点:Mysql 基本用法之函数

函数 MySQL中提供了许多内置函数 例如: sql 内置函数: 一.数学函数 ROUND(x,y) 返回参数x的四舍五入的有y位小数的值 RAND() 返回0到1内的随机值,可以通过提供一个参数(种子)使RAND()随机数生成器生成一个指定的值. 二.聚合函数(常用于GROUP BY从句的SELECT查询中) AVG(col)返回指定列的平均值 COUNT(col)返回指定列中非NULL值的个数 MIN(col)返回指定列的最小值 MAX(col)返回指定列的最大值 SUM(col)返回指定列

MySQL教程之concat以及group_concat的用法

MySQL教程之concat以及group_concat的用法 本文中使用的例子均在下面的数据库表tt2下执行: 一.concat()函数 1.功能:将多个字符串连接成一个字符串. 2.语法:concat(str1, str2,...) 返回结果为连接参数产生的字符串,如果有任何一个参数为null,则返回值为null. 3.举例: 例1:select concat (id, name, score) as info from tt2; 中间有一行为null是因为tt2表中有一行的score值为n