`

mysql的group_concat是个好东西

 
阅读更多
一个很常见的查询,一个用户有多个名字,这个时候我们一般会用个中间表,一边是用户表,一个是用户名表,一个是中间表。

需求: 一条sql查询出所有用户的全部用户名,用户名用逗号隔开

这个需求用group_concat就很好解决。
方式一:用子查询

select 
`user`.id,

(SELECT  group_concat(name.name)as name  from middle
LEFT JOIN name on name.id=middle.nameId
where middle.userId=`user`.id) as name 


 from `user` 





方式二 用表连接和group by

select `user`.id,group_concat(name.name)as name  from `user`
LEFT JOIN middle on middle.userId=`user`.id
LEFT JOIN name on name.id=middle.nameId 
GROUP BY `user`.id





  • 大小: 27.2 KB
  • 大小: 25 KB
0
7
分享到:
评论

相关推荐

    【GROUP_CONCAT】使用之MySQL官方文档翻译

    `GROUP_CONCAT` 结果的长度受到 `group_concat_max_len` 系统变量的限制,默认值为 1024 字节。如果结果超过了这个长度,将会被截断。可以通过以下语句动态调整这个值: ```sql SET SESSION group_concat_max_...

    MySQL GROUP_CONCAT限制解决方案

    作用:  GROUP_CONCAT函数可以拼接某个字段值成字符串,默认的分隔符是 逗号,即...SHOW VARIABLES LIKE 'group_concat_max_len' 操作方法:(如图) 调整长度设置方法: (1)在MySQL配置文件中加入:  文件:my.ini

    如何修改Mysql中group_concat的长度限制

    为了解决这个问题,你需要调整MySQL的`group_concat_max_len`系统变量。 `group_concat_max_len`变量决定了`GROUP_CONCAT`函数返回的最大长度。你可以通过以下两种方式来修改这个限制: 1. **临时修改(仅限当前...

    MySQL中group_concat函数深入理解

    MySQL中的`GROUP_CONCAT`函数是一个非常实用的聚合函数,它允许你在分组查询中将一组行的某个列值合并成一个字符串,每个值之间由指定的分隔符隔开。这个函数对于数据汇总和报告生成特别有用,因为它可以把多行数据...

    Mysql的GROUP_CONCAT()函数使用方法

    MySQL中的GROUP_CONCAT()函数是一个非常实用的聚合函数,它允许你在分组查询时将同一组内的多个值合并成一个字符串。此函数主要用于数据分析和报表生成,尤其在处理多对多关系的数据时,能简化数据处理流程。在本文...

    mysql group_concat()函数用法总结

    MySQL中的`GROUP_CONCAT()`函数是一个非常实用的聚合函数...不过,合理地使用`GROUP BY`子句和理解`group_concat_max_len`的限制对于正确运用这个函数至关重要。在设计查询时,务必考虑这些因素以确保得到期望的结果。

    mysql中GROUP_CONCAT的使用方法实例分析

    - `GROUP_CONCAT`默认返回的字符串长度有限制,可以通过设置`group_concat_max_len`系统变量来调整这个限制。 - `GROUP_CONCAT`中的`SEPARATOR`关键字用于指定各个元素之间的分隔符,如果不指定,默认使用逗号 `,`。...

    MySQL统计函数GROUP_CONCAT使用陷阱分析

    MySQL中的GROUP_CONCAT函数是一个非常实用的统计函数,它允许我们合并特定列的值,并以指定的分隔符连接它们。然而,在某些情况下,如果不注意,可能会遇到一些使用陷阱,导致数据被截断或者出现警告。本文将深入...

    ORA-00904: "WM_CONCAT": 标识符无效

    例如,如果你原来的语句是`SELECT WM_CONCAT(column) FROM table`,你可以改为`SELECT LISTAGG(column, ', ') WITHIN GROUP (ORDER BY column) FROM table`。这样,LISTAGG会按照column的顺序将行连接成一个字符串,...

    mysql group_concat 实现把分组字段写成一行的方法示例

    - MySQL对`GROUP_CONCAT` 输出的长度有限制,可以通过修改`group_concat_max_len`系统变量来扩展最大长度。 - 如果不指定`ORDER BY`子句,`GROUP_CONCAT` 按照字段的默认排序顺序连接字段值。 - 使用`DISTINCT`可以...

    wm_concat函数所需资源包

    在Oracle数据库环境中,`WM_CONCAT`函数是一个非常实用的工具,用于将多个行的数据合并成单个字符串。然而,自Oracle 11g R2版本开始,这个函数被标记为弃用,导致许多用户在使用时遇到问题。标题中的"wm_concat函数...

    Mysql5.7中使用group concat函数数据被截断的问题完美解决方法

    这个问题源于MySQL的一个系统变量`group_concat_max_len`,该变量限制了`GROUP_CONCAT`函数返回结果的最大长度,默认值仅为1024字节。 `group_concat_max_len`的作用是设定`GROUP_CONCAT()`函数在返回结果时能够...

    GROUP_CONCAT的用法

    2. GROUP_CONCAT 函数的结果集最大长度为 1024 字符,可以使用 `GROUP_CONCAT_MAX_LEN` 系统变量来调整结果集的最大长度。 3. GROUP_CONCAT 函数忽略空值,可以使用 `COALESCE` 函数来处理空值。 GROUP_CONCAT 函数...

    类似于wmsys.wm_concat的自定义函数clob版

    在Oracle数据库中,`WMSYS.WM_CONCAT`函数是一个非常实用的工具,它用于将多行数据合并成一个单行字符串。然而,由于其内部处理机制,当需要合并的数据量过大时,可能会遇到“字符串缓冲区太小”的错误。这是因为`WM...

    mysql的group_concat函数使用示例

    默认情况下,这个限制通常是1024个字符,可以通过修改`group_concat_max_len`系统变量来增大这个限制。 - 分隔符可以是任何字符串,例如空格、冒号或其他自定义的字符。例如,要使用分号作为分隔符,可以这样写:`...

Global site tag (gtag.js) - Google Analytics