zoukankan      html  css  js  c++  java
  • 关于mysql的group_concat()函数总结

    背景(场景):在项目中,有一个需要显示视频资源列表的页面,视频资源的信息对应一张表t_video,还有另外两张表分别表示视频的种类(表t_type)和视频的地区(表t_area),t_video和t_area、t_type是多对多的关系,即一个video信息里面会包含一个或多个区域和类型信息,举例:

    一个video既可以是搞笑,也可以是爱情片,但是这是两个种类。于是想一次取出一条video的信息,这个时候就用到了标题上说的group_concat()函数,这是mysql自带的函数,oracle也有相应的函数,使用时它必须和group by一起使用,才能起到作用。

        页面效果如下:

    SQL语句如下:

    SELECT

    vi.title

    ,group_concat(distinct va.`name`) area

    ,group_concat(distinct vt.`name`) type

    ,vk.`name` kindd

    FROM video_info vi , video_area va , video_type vt , video_kind vk , video_info_area via , video_info_type vit

    WHERE vi.vfID = '658821a1-adb0-4a97-89af-612e2294f748'

    AND vi.vfID = via.vfID

    AND vi.vfID = vit.vfID

    AND vi.kind = vk.vkID

    AND via.vaID = va.vaID

    AND vit.vtID = vt.vtID

    GROUP BY vi.title;

    注:video_info_area和video_info_type是关系表。

    执行结果:

    其实group_concat()的作用,用在网上看到的一句话就是:group_concat()会计算哪些行属于同一组,将属于同一组的列显示出来。

  • 相关阅读:
    番剧下载器
    ☕️【系统设计】如何设计出优雅且实用的 API 接口
    对象在内存中的内存布局是什么样的?
    稍等,我手机帮你远程调试下代码!
    Redis持久化整理
    git fork模式整理
    Java Lambda 表达式源码分析
    Java Stream 源码分析
    JVM G1GC的算法与实现
    域控批量创建域用户,并授权组
  • 原文地址:https://www.cnblogs.com/whatisjava/p/2944592.html
Copyright © 2011-2022 走看看