当前位置:   article > 正文

mysql 合并列值为一行查询_将查询列合并为1行

将查询列合并为1行

一、oracle 写法

select WM_CONCAT(A.列名) as citys from 表名 A 

二、sql server 写法

select stuff((select ','+A.列名 from 表名 A FOR xml PATH('')), 1, 1, '') as citys

三、mysql 写法

        1、默认的逗号分隔

select GROUP_CONCAT(A.列名) as citys from 表名 A;

        2、用空格分隔

select GROUP_CONCAT(A.列名 SEPARATOR  ' ') as citys from 表名 A; 

四、问题记录

       使用 GROUP_CONCAT 函数将多个字符串连接成一个字符串,在拼接成字符串时就会存在拼接长度的问题,mysql 默认的拼接最大长度为 1024 个字节,由于 1024 个字节会出现不够用的情况,所以有时需要去根据情况进行修改,方式如下。

4.1 查看最大长度

       进入 mysql 命令行,输入下面的命令

show variables like 'group_concat_max_len'

4.2 修改默认长度

       进入到指定文件夹下,修改 my.ini 文件,注意这个 ProgramData 是个隐藏的文件,注意不是 Program Files 文件夹。

        新增配置:group_concat_max_len = 4294967295

        重启 mysql 服务,然后重新查看当前状态即可:

       输入:show variables like 'group_concat_max_len'; 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/400045
推荐阅读
相关标签
  

闽ICP备14008679号