MySQL学习笔记(一)

    xiaoxiao2022-07-04  158

    group_concat的使用,一对多条件下一次查询拿出全部数据

    group_concat函数的使用: 基本语法:group_concat( [DISTINCT] 要连接的字段 [Order BY 排序字段 ASC/DESC] [Separator ‘分隔符’] ) 中括号为非必加条件,此函数一般与group by [字段名] 使用。 使用情景: 一个老师教三个班级,这时候有一个需求就是展示出每个老师教的哪些班 SQL命令:

    SELECT teacher_name, ( SELECT GROUP_CONCAT(class_name) FROM class WHERE class.teacher_id = teacher.teacher_id GROUP BY teacher_id ) AS className FROM teache

    输出结果: 默认的分隔符为‘,’ 可以通过Separator改变分隔符。还可以在函数中加入排序条件和去重条件,例如:

    SELECT teacher_name, ( SELECT GROUP_CONCAT( DISTINCT class_name ORDER BY class_name DESC SEPARATOR'-') FROM class WHERE class.teacher_id = teacher.teacher_id GROUP BY teacher_id ) AS className FROM teacher

    输出结果: 个人感觉很好用,可以一次查询搞定,而不用查询后在后台搞定,削减效率。

    最新回复(0)