博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MySql 中如何连接一列字符串(转)
阅读量:4222 次
发布时间:2019-05-26

本文共 1166 字,大约阅读时间需要 3 分钟。

 

在MySql中提供了两个字符串的操作函数:Concat,Concat_ws.对于他们的介绍比较多,然而我们更多的需要使用到按列分组连接才能满足我们的需求,这里可以使用Group_concat来实现。

GROUP_CONCAT(expr) 

完整句法如下: GROUP_CONCAT([DISTINCT] expr [,expr ...]
[ORDER BY {unsigned_integer | col_name | formula} [ASC | DESC] [,col ...]]
[SEPARATOR str_val])

这个函数在 MySQL 4.1 中被加入。函数返回一个字符串结果,该结果由分组中的值连接组合而成: mysql> SELECT student_name,

-> GROUP_CONCAT(test_score)
-> FROM student 
-> GROUP BY student_name;
or
mysql> SELECT student_name,
-> GROUP_CONCAT(DISTINCT test_score
-> ORDER BY test_score DESC SEPARATOR " ")
-> FROM student
-> GROUP BY student_name;

在 MySQL 中,你可以得到表达式结合体的连结值。通过使用 DISTINCT 可以排除重复值。如果希望对结果中的值进行排序,

可以使用 ORDER BY 子句。为了以倒序排序,可以在 ORDER BY 子句中用于排序的列名后添加一个 DESC (递减 descending) 关键词
。缺省为升序;这也可以通过使用 ASC 关键词明确指定。 
SEPARATOR 是一个字符串值,它被用于插入到结果值中。缺省为一个逗号 (",")。
你可以通过指定 SEPARATOR "" 完全地移除这个分隔符。 
在你的配置中,通过变量 group_concat_max_len 要以设置一个最大的长度。
在运行时执行的句法如下: SET [SESSION | GLOBAL] group_concat_max_len = unsigned_integer;

如果最大长度被设置,结果值被剪切到这个最大长度。 

GROUP_CONCAT() 函数是一个增强的 Sybase SQL Anywhere 支持的基本 LIST() 函数。
如果只有一个列,并且没有其它选项被指定,GROUP_CONCAT() 是向后兼容有极大限制的 LIST() 函数。 
LIST() 有一个缺省的排序次序。

如果分组的字符过长,可以对系统参数进行设置

SET @@global.group_concat_max_len=40000;

 

原文:

转载地址:http://fjgmi.baihongyu.com/

你可能感兴趣的文章
MyEclipse设置默认注释的格式
查看>>
同一服务器部署多个tomcat时的端口号修改详情
查看>>
常用正则表达式集锦
查看>>
Spring定时器的时间表达式
查看>>
fastdfs简介
查看>>
主键和唯一索引的区别
查看>>
linux下使用yum安装gcc详解
查看>>
aclocal安装依赖的库
查看>>
FastDFS 安装及使用详解
查看>>
ERROR 1045 (28000): Access denied for user root@localhost (using password: NO)解决方案
查看>>
Host 'XXX' is not allowed to connect to this MySQL server解决方案
查看>>
corosync pacemaker 配置高可用集群(一)
查看>>
5种IO模型、阻塞IO和非阻塞IO、同步IO和异步IO
查看>>
nginx(一) nginx详解
查看>>
nginx(二) nginx编译安装 及 配置WEB服务
查看>>
nginx(三) nginx配置:反向代理 负载均衡 后端健康检查 缓存
查看>>
nginx(四) nginx+keepalived 实现主备+双主热备模型的高可用负载均衡代理服务
查看>>
jQuery核心--多库共存
查看>>
4 51 单片机最小系统
查看>>
6 51点亮第一个LED
查看>>