zoukankan      html  css  js  c++  java
  • 使用mysql函数 group_concat 一点需要注意的

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

    比如学生和老师是多对多的关系,如果我们希望查询 指定的一些老师对应的学生有哪些 的时候,一般的情况,我们可能会遍历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

    进行永久设置

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

  • 相关阅读:
    ajax实现无刷新上传附件并且显示进度条的实例
    thinkphp ajax 无刷新分页效果的实现
    微信错误码详述
    eclispse修改项目项目编码
    构建高性能web之路------mysql读写分离实战
    Hibernate 的Ehache学习
    sessionStorage和localStorage
    sql中的group by 和 having 用法解析
    Hibernate DetachedCriteria实现
    JavaScript eval_r() 函数
  • 原文地址:https://www.cnblogs.com/coprince/p/3853049.html
Copyright © 2011-2022 走看看