本文共 973 字,大约阅读时间需要 3 分钟。
GROUP_CONCAT 是 MySQL 中一个强大的字符串聚合函数,用于将数据库中多行记录中的指定字段值合并成一个字符串。其基本语法格式如下:
GROUP_CONCAT([DISTINCT] column_name [ORDER BY ...] [SEPARATOR ...])
","
作为分隔符。ASC
),若需降序排列(DESC
),需在查询中特别指明。以下是一个示例数据库表 score
的结构,包含 s_id
和 s_score
两个字段:
SELECT s_id, s_score FROM score WHERE s_score IS NOT NULL
目标:以每个 s_id
为一行,在前台展示该 s_id
对应的所有分数。
解决方案:
SELECT s_id, GROUP_CONCAT(s_score ORDER BY s_score DESC SEPARATOR ';') AS all_scoreFROM scoreWHERE s_score IS NOT NULLGROUP BY s_id;
GROUP BY s_id
:按 s_id
进行分组,使每个分组结果对应一个 s_id
。GROUP_CONCAT
:将同一 s_id
下所有 s_score
值按降序排列后,合并成一个字符串,使用 ;
作为分隔符。AS all_score
:自定义字段名,方便结果展示。s_id | all_score |
---|---|
1 | 100;99;98 |
GROUP_CONCAT
中,默认排序为 ASC
,若需要降序排序,需在 ORDER BY
中明确指出。GROUP_CONCAT 是处理多行数据合并的强大工具,适用于需要将多个字段值展示在同一行的场景,但需权衡其对查询性能的影响。
转载地址:http://qfbfk.baihongyu.com/