mysql如何实现多行查询结果合并成一行_Mysql

利用函数:group_concat(),实现一个ID对应多个名称时,原本为多行数据,把名称合并成一行。

其完整语法:

GROUP_CONCAT(expr)

该函数返回带有来自一个组的连接的非NULL值的字符串结果。其完整的语法如下所示:

GROUP_CONCAT([DISTINCT] expr [,expr ...]

[ORDER BY {unsigned_integer | col_name | expr}

[ASC | DESC] [,col_name ...]]

[SEPARATOR str_val])

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子句。若要按相反顺序排列,将 DESC (递减) 关键词添加到你要用ORDER BY 子句进行排序的列名称中。默认顺序为升序;可使用ASC将其明确指定。 SEPARATOR 后面跟随应该被插入结果的值中间的字符串值。默认为逗号 (‘,')。通过指定SEPARATOR '' ,你可以删除所有分隔符。

使用group_concat_max_len系统变量,你可以设置允许的最大长度。 程序中进行这项操作的语法如下,其中 val 是一个无符号整数:

SET [SESSION | GLOBAL] group_concat_max_len = val;

时间: 2024-10-29 06:13:23

mysql如何实现多行查询结果合并成一行_Mysql的相关文章

WPS怎么将多行文字快速合并成一行文字?

  WPS怎么将多行文字快速合并成一行文字?          1.在计算机桌面的Wps演示图标上双击鼠标左键,将其打开运行.如图所示; 2.在打开的Wps演示程序窗口,打开"插入"菜单选项卡,并点击插入工具栏中的"公式"选项按钮.如图所示; 3.点击公式选项后,会打开"公式编辑器"对话框.如图所示; 4.在公式编辑器对话框中,选择一个四行一列的矩阵.如图所示; 5.接着在编辑器中输入文字信息,不要按回车键换行,可以利用tab键换行.如图所示;

sql2个不同表有相同的列名,需要把2个表中相同的行合并成一行

问题描述 sql2个不同表有相同的列名,需要把2个表中相同的行合并成一行 sql2个不同表有相同的列名,需要把2个表中相同的行合并成一行,SQL要怎么写,用union all相同的行是分开,不是合并在一起的,哪位大神告知,谢谢! 解决方案 先union,然后按照某些条件group by 解决方案二: 用关联查询, inner join ,left join ,right join , 我不知道我理解的对不对. 解决方案三: 直接用UNION就行了,UNION会将重复的行自动去掉.将我只是理解你说

Sql Server:多行合并成一行,并做分组统计的两个方法

复制代码 代码如下: --创建 test 表 ,插入数据 CREATE TABLE test(code varchar(50), [values] varchar(10),[count] int) INSERT test SELECT '001', 'aa',1 UNION ALL SELECT '001', 'bb',2 UNION ALL SELECT '002', 'aaa',4 UNION ALL SELECT '002', 'bbb',5 UNION ALL SELECT '002',

scala-spark中怎么将读取某几行数据合并成一行啊? 新手 谢谢 !

问题描述 spark中怎么将读取某几行数据合并成一行啊? 新手 谢谢 ! 例如图片里说的 谢谢啦 数据是读取的外部csv文件 麻烦啦 求大神指教一下 解决方案 sehll脚本将几行输出合并成一行显示 解决方案二: http://bbs.csdn.net/topics/391872110

怎么把listview的两行合并成一行,两者的表头并列显示

问题描述 怎么把listview的两行合并成一行,两者的表头并列显示 怎么把listview的两行合并成一行,两者的表头并列显示,listview能不能制作分栏的效果? 解决方案 http://bbs.csdn.net/topics/390740772 解决方案二: 看你 用什么语言了,有的支持分栏,有的不支持,你需要自定义,然后自己绘制效果 解决方案三: 不太懂你的意思.对于Android来说,我初步理解为:你可以设置ListView 的 drivider 为 @null,然后在每个Item的

MySQL中三种关联查询方式的简单比较_Mysql

看看下面三个关联查询的 SQL 语句有何区别?   SELECT * FROM film JOIN film_actor ON (film.film_id = film_actor.film_id) SELECT * FROM film JOIN film_actor USING (film_id) SELECT * FROM film, film_actor WHERE film.film_id = film_actor.film_id 最大的不同更多是语法糖,但有一些有意思的东西值得关注.

word中将奇数行和偶数行合并成一行的方法技巧

  方法1 1.在Word中将文本转换为含两列的表格.全选后依次点:表格-转换-文本转换成表格(X). 2.将表格复制到Excel,在空白列填充"奇偶"文字.在第一二行空白列分别填上奇偶,选中这两个单元格,光标移到第二个单元格右下角时变为+,按住鼠标左键往下拖动,完成填充. 3.复制粘贴表格回到Word,将表格转换为文字.全选后依次点:表格-转换-表格转换成文本(B). 4.将"奇和回车符"一起全部替换为空白,再将"偶"全部替换为空白.依次点:编

WPS合并多行文字连接成一行

从网上下载的数据格式经常是一项数据一行,而我们经常需要把一大篇文本中的内容每两行文字连接成一行,有时甚至需要把更多的行连接成一行.手工复制粘贴显然是很麻烦的,其实在WPS文字2007中要处理这类问题是很简单的.下面就用WPS 2007个人版的WPS文字来介绍一下具体操作. 1.启动WPS文字2007,单击菜单"文件/打开",在打开窗口中选择文件类型为"所有文件(*.*)",然后直接找到要处理的TXT文本文件打开. 2.按"Ctrl+A"组合键选中

mysql 两张表关联查询问题

问题描述 mysql 两张表关联查询问题 现在有表A大概是百万级的数据,表B只有几千行,但是想在查询表A里剔除掉表B的数据,SELECT * FROM A WHERE NOT EXISTS (SELECT 1 FROM B WHERE B.id = A.id),这种写法效率很低,请问有没有其他的解决方法? 解决方案 这样写当然效率低,因为是笛卡尔积,要用join select a.*, b.* from a join b on a.id=b.id 解决方案二: 左外连left join 解决方案