Mysql 的 GROUP_CONCAT() 函数拼接串

SELECT GROUP_CONCAT( ut.id_card ORDER BY ut.id_card DESC SEPARATOR ‘,‘ )   FROM `edu_user_train` ut where ut.id in(614,615);

输出结果:
500231199108181861,371324198450304515
使用场景:返回的是纯数字 配合in 查询
例:
SELECT u.name FROM `edu_user` u WHERE u.id_card IN (500231199108181861,371324198450304515);
SELECT GROUP_CONCAT(‘"‘,ut.id_card,‘"‘) FROM `edu_user_train` ut where ut.id in(614,615);

输出结果:

"500231199108133881","371325198706304515"

使用场景:返回的是字符串(因为身份证中存在有"X"的情况) 配合in 查询
例:
SELECT u.name FROM `edu_user` u WHERE u.id_card IN ("500231199108133881","371325198706304515");
SELECT CONCAT(‘"‘,ut.id_card,‘"‘) FROM `edu_user_train` ut where ut.id in(614,615);

输出结果:

"500231199133133881"
"371325198706454515"

这种情况相对来说就用的比较少了。

这部分以上面的区别在于加了GROUP 后 , 再得到一个结果后会进行换行。

SELECT GROUP_CONCAT( u. NAME ORDER BY u. NAME DESC SEPARATOR "," ) AS userName FROM `edu_user` u WHERE u.id_card IN ( SELECT ut.id_card  FROM `edu_user_train` ut where ut.id in(614,615,939));

多个数据, 进行子查询。

欢迎补充指正,这是本人在实践中所得的记录,详细用法及专业解释请看Mysql 的API。

时间: 2024-10-31 14:37:21

Mysql 的 GROUP_CONCAT() 函数拼接串的相关文章

MySQL中group_concat函数 --- 很有用的一个用来查询出所有group by 分组后所有 同组内的 内容

本文通过实例介绍了MySQL中的group_concat函数的使用方法,比如select group_concat(name) . MySQL中group_concat函数 完整的语法如下: group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符']) 基本查询 mysql> select * from aa; +------+------+ | id| name | +------+------+ |1 |

MySQL中group_concat函数-和group by配合使用

MySQL中group_concat函数 完整的语法如下: group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符']) 基本查询 Sql代码 收藏代码 select * from aa; +------+------+ | id| name | +------+------+ |1 | 10| |1 | 20| |1 | 20| |2 | 20| |3 | 200 | |3 | 500 | +------+

【转】mysql的group_concat函数,默认最大长度是1024

mysql的group_concat函数,默认最大长度是1024 查询sql: show variables like 'group_concat_max_len'; 设置方式: 修改配置文件my.ini: 在[mysqld]下新增配置:group_concat_max_len = 4294967295; 注意是:在[mysqld]下新增:在[mysqld]下新增:在[mysqld]下新增:重要的事情说三遍. 然后重启mysql服务,然后通过上面的查询sql进行查看是否生效. 如果是生产环境,不

关于group_concat函数拼接字符超长的问题

昨天测试的人火急火燎的找我,跟我说数据不对!说明情况后我去查看,原来是数据上有个子查询出来的字段没有完全展示 问题很明显,就是数据被截断了.下面贴上我写的查询 wyids_是正确的显示,通过它子查询出来的wnames_确被截断了,最开始我是认为字段默认长度的问题,各种弄.结果发现 是group_concat函数的长度问题,需要到mysql的my.ini里面配置默认的长度.....

mysql中group_concat函数用法

该函数返回带有来自一个组的连接的非NULL值的字符串结果.该函数是一个增强的Sybase SQL Anywhere支持的基本LIST()函数. 语法结构: GROUP_CONCAT([DISTINCT] expr [,expr ...] [ORDER BY {unsigned_integer | col_name | expr} [ASC | DESC] [,col_name ...]] [SEPARATOR str_val]) DISTINCT:去除重复值 expr [,expr ...]:一

【原创】利用MySQL 的GROUP_CONCAT函数实现聚合乘法

MySQL 聚合函数里面提供了加,平均数,最小,最大等,但是没有提供乘法,我们这里来利用MYSQL现有的GROUP_CONCAT函数实现聚合乘法. 先创建一张示例表: CREATE TABLE `tb_seq` (   `num` int(10) NOT NULL,   `seq_type` enum('yellow','green','red') NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 插入示例数据: insert  into `tb_se

利用MySQL 的GROUP_CONCAT函数实现聚合乘法

MySQL 聚合函数里面提供了加,平均数,最小,最大等,但是没有提供乘法,我们这里来利用MYSQL现有的GROUP_CONCAT函数实现聚合乘法.先创建一张示例表: CREATE TABLE `tb_seq` ( `num` int(10) NOT NULL, `seq_type` enum('yellow','green','red') NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 插入示例数据: insert into `tb_seq`(`nu

为什么 MySQL 中 GROUP_CONCAT 函数返回 BLOB 大对象类型?(Why GROUP_CONCAT returns BLOB?)

太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. 相似的文章列于下方, 我的问题是 CONCAT(字段名, ''),这个用法,就是为了将字段名所代表的数值字段转换成字符串结果. 那么,从以下三楼回

mysql之group_concat函数详解

函数语法: group_concat([DISTINCT] 要连接的字段 [ORDER BY 排序字段 ASC/DESC] [SEPARATOR '分隔符']) 下面举例说明: select * from goods; 以id分组,把price字段的值在同一行打印出来,逗号分隔(默认) select id, group_concat(price) from goods group by id; 以id分组,把price字段的值在一行打印出来,分红分隔 SELECT id, group_conca