这个函数是一个非常好用的函数,比如我们可以在 进行多对多关联表,进行批量查询的时候可以用到,

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

select teacher_id,group_concat(student_id) from teache_student_mapping where teacher_id in (teacher_id1,teacher_id2,teacher_id3) group by teacher_id

这样就获取到了每个老师对应的学生集合.

又比如,在使用lucene等全文检索搜索引擎中是不支持表关联的,所以要存储这种关联关系,一种做法就是将这些数据以某些特定的字符进行连接,而我们的数据来源往往都是数据库,这个时候,group_concat又派上用场了,用法还是和上面一样,我就不多说了

但是这里有一个隐藏的问题,就是group_concat组成的字符串是有长度限制的,之前一直不知道这个问题,具体可以通过

show VARIABLES like 'group_concat_max_len'来进行查询

如果要修改这个信息,可以通过

SET group_concat_max_len = 20000

修改当前会话该参数值

或者修改配置文件

group_concat_max_len = 102400

进行永久设置

改完配置文件记得重启数据库哦!

使用mysql函数 group_concat 一点需要注意的的更多相关文章

  1. oracle 函数 WMSYS.WM_CONCAT 与对应 mysql 函数GROUP_CONCAT的用法

    1.oracle函数 WMSYS.WM_CONCAT的使用 如图,将图1的结果变成图2的结果,使用函数 WMSYS.WM_CONCAT 即可. 查询语句需要配合使用group by select aa ...

  2. mysql 函数GROUP_CONCAT(temp.amount SEPARATOR ',')的用法

    mysql 函数GROUP_CONCAT(temp.amount SEPARATOR ',')的用法 使用场景:例如:想要查询用户的最喜欢购买的几种商品,这个时候就需要使用group_concat(字 ...

  3. MySQL函数GROUP_CONCAT

    该函数返回带有来自一个组的连接的非NULL值的字符串结果.该函数是一个增强的Sybase SQL Anywhere支持的基本LIST()函数. 语法结构: GROUP_CONCAT([DISTINCT ...

  4. mysql 函数group_concat()

    本文通过实例介绍了MySQL中的group_concat函数的使用方法,比如select group_concat(name) .MySQL中group_concat函数完整的语法如下:group_c ...

  5. 关于mysql函数GROUP_CONCAT

    GROUP_CONCAT()是MySQL数据库提供的一个函数,通常跟GROUP BY一起用,具体可参考MySQL官方文挡:http://dev.mysql.com/doc/refman/5.0/en/ ...

  6. 【转】关于MySQL函数GROUP_CONCAT的使用

    GROUP_CONCAT()是MySQL数据库提供的一个函数,通常跟GROUP BY一起用,具体可参考MySQL官方文挡:http://dev.mysql.com/doc/refman/5.0/en/ ...

  7. mysql 函数 GROUP_CONCAT 单元格中最长字符串和excel导出问题

    GROUP_CONCAT 使用方式GROUP_CONCAT ([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符']) SELECT ...

  8. MySQL函数GROUP_CONCAT() 实现多条数据合并

    group_concat()会计算哪些行属于同一组,将属于同一组的列显示出来,group by指定的列进行分组. 例如: -- 根据物流订单id查询所有物流订单,车源订单,车辆信息(多条数据合并为一条 ...

  9. mysql中group_concat函数用法

    该函数返回带有来自一个组的连接的非NULL值的字符串结果.该函数是一个增强的Sybase SQL Anywhere支持的基本LIST()函数. 语法结构: GROUP_CONCAT([DISTINCT ...

随机推荐

  1. Oracle 12c RAC 搭建手册

    1  共享设备配置 1.1            设备划分说明 冗余策略 卷划分及大小说明 OCRVOTING Ocrvoting01 8G Ocrvoting02 8G Ocrvoting03 8G ...

  2. 斐波那契数列PHP非递归数组实现

    概念: 斐波那契数列即表达式为 a(n) = a(n-1)+a(n-2) 其中 a1 =0 a2 = 1  的数列 代码实现功能: 该类实现初始化给出n,通过调用getValue函数得出a(n)的值 ...

  3. 怎么给OCR文字识别软件重编文档页面号码

    ABBYY FineReader Pro for Mac OCR文字识别软件处理文档时,在FineReader文档中,页面的加载顺序即是页面的导入顺序,完成导入之后,文档的所有页面均会被编号,各编号会 ...

  4. opsview

    nagios,cacti,opsview,prtg,zabbix http://www.opsview.com 1.需要注册一个账号,createyuan#sohu.com

  5. awk笔记

    http://www.cnblogs.com/zhuyp1015/archive/2012/07/14/2591842.html awk实例练习 http://www.cnblogs.com/repo ...

  6. vs2010设置 "行号显示"

    Microsoft Visual Studio 2010 默认情况下是不显示代码的行号的.在编译出错时,可点击下面输出窗口中的错误提示进行定位. 但是这样操作起来你有没有感觉到不方便呢. 不显示行号时 ...

  7. BigPipe 了解

    BigPipe是一个重新设计的基础动态网页服务体系.大体思路是,分解网页成叫做Pagelets的小块,然后通过Web服务器和浏览器建立管道并管理他们在不同阶段的运行.这是类似于大多数现代微处理器的流水 ...

  8. JS 阻止浏览器默认行为和冒泡事件

    JS 冒泡事件   首先讲解一下js中preventDefault和stopPropagation两个方法的区别: preventDefault方法的起什么作用呢?我们知道比如<a href=& ...

  9. System.AccessViolationException,尝试读取或写入受保护的内存。这通常指示其他内存已损坏。

    从事件查看器中发现,IIS不定期崩溃并重启的现象.抓取crash dump文件后,发现能够看到异常,但没有堆栈信息(主要是只会看托管代码的堆栈,非托管的不清楚.),问题表现及dump日志的截图如下: ...

  10. DataRow[] 转为数组

    DataRow[] rows = dt.Select("1=1"); ].ToString()).ToArray();