`

mysql中的多行查询结果合并成一个

 
阅读更多
SELECT GROUP_CONCAT(md.data1) FROM DATA md,contacts cc WHERE md.conskey=cc.id AND md.mimetype_id= 5 AND md.user_id=17:

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

本文通过实例介绍了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 | 10|
|1 | 20|
|1 | 20|
|2 | 20|
|3 | 200 |
|3 | 500 |
+------+------+
6 rows in set (0.00 sec)

以id分组,把name字段的值打印在一行,逗号分隔(默认)
mysql> select id,group_concat(name) from aa group by id;
+------+--------------------+
| id| group_concat(name) |
+------+--------------------+
|1 | 10,20,20|
|2 | 20 |
|3 | 200,500|
+------+--------------------+
3 rows in set (0.00 sec)

以id分组,把name字段的值打印在一行,分号分隔
mysql> select id,group_concat(name separator ';') from aa group by id;
+------+----------------------------------+
| id| group_concat(name separator ';') |
+------+----------------------------------+
|1 | 10;20;20 |
|2 | 20|
|3 | 200;500 |
+------+----------------------------------+
3 rows in set (0.00 sec)

以id分组,把去冗余的name字段的值打印在一行,
逗号分隔

mysql> select id,group_concat(distinct name) from aa group by id;
+------+-----------------------------+
| id| group_concat(distinct name) |
+------+-----------------------------+
|1 | 10,20|
|2 | 20 |
|3 | 200,500 |
+------+-----------------------------+
3 rows in set (0.00 sec)

以id分组,把name字段的值打印在一行,逗号分隔,以name排倒序
mysql> select id,group_concat(name order by name desc) from aa group by id;
+------+---------------------------------------+
| id| group_concat(name order by name desc) |
+------+---------------------------------------+
|1 | 20,20,10 |
|2 | 20|
|3 | 500,200|
+------+---------------------------------------+
3 rows in set (0.00 sec)
分享到:
评论

相关推荐

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

    在MySQL数据库中,有时我们需要将具有相同标识符的多行数据合并成一行,尤其是在处理具有关联列表或集合的数据时。在这种情况下,`GROUP_CONCAT()` 函数是一个非常实用的工具。这个函数允许我们将多行结果合并成单行...

    如何将两列合并为一个结果列

    虽然`CONCAT()`在大多数情况下表现良好,但当处理大数据集时,可以考虑使用`GROUP_CONCAT()`函数,它能将多行合并成一个单一的字符串,这对于生成逗号分隔的值列表非常有用。 总结来说,MySQL提供了多种方式来合并...

    mysql复杂动态行转列解决方案

    `GROUP_CONCAT`用于将多行合并为一个字符串,`SUBSTRING_INDEX`则用于分割字符串并提取特定部分。以下是基本步骤: 1. 创建一个包含所有可能列名的查询,这可以通过`UNION ALL`多个子查询来实现。 2. 使用`GROUP_...

    mysql命令学习总结

    在上述例子中,当学生成绩分布在多行时,GROUP_CONCAT可以将同一学生的各科成绩组合成一个列表。 3. **CREATE TABLE命令**: 创建新的表结构,包括定义字段、数据类型、约束等。例如,`blog_user`表创建了用户名、...

    C++操作MySQL大量数据插入效率低下的解决方法

    1. **批量插入**:将多个INSERT语句合并成一条,如`INSERT INTO table_name (col1, col2) VALUES (val1, val2), (val3, val4), ...`。这样可以减少网络通信次数,提高效率。 2. **预处理语句(Prepared Statements...

    SqlServer GroupConcat

    例如,假设我们有一个`Orders`表,包含`CustomerId`和`ProductName`字段,我们可以使用`SqlServer GroupConcat`来获取每个客户的所有订单产品名,组合成一个逗号分隔的字符串: ```sql SELECT CustomerId, [Group...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part1

    实例119 统计关键字的查询结果 150 实例120 计算查询操作的执行时间 151 实例121 查询关键字描红 152 实例122 判断上传文件的类型 153 实例123 判断邮政编码格式是否正确 154 2.10 数组 154 实例124 创建并输出数组 ...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part2

    实例119 统计关键字的查询结果 150 实例120 计算查询操作的执行时间 151 实例121 查询关键字描红 152 实例122 判断上传文件的类型 153 实例123 判断邮政编码格式是否正确 154 2.10 数组 154 实例124 创建并输出数组 ...

    添加一个表,并为其添加4000多个测试数据的sql语句

    更高效的方法是将多条数据合并成一条`INSERT`语句进行插入,这样可以显著减少与数据库交互的次数,提升操作速度。例如,在示例中,通过一次执行就插入了多条记录,这比逐一执行每条记录的插入操作要高效得多。 ### ...

    Hive用户指南(Hive_user_guide)_中文版.pdf

    Hive允许用户以数据仓库的方式管理存储在Hadoop文件系统(HDFS)中的大量数据,并且通过MapReduce执行查询操作。 Hive的架构由以下几个核心部分组成: 1. 用户接口:包括命令行接口(CLI)、客户端(Client)和Web...

    hive操作指南

    - `ORDER BY`用于对查询结果进行排序。 - 示例:`SELECT * FROM employees ORDER BY age ASC;` #### 四、Hive Join - Hive支持多种类型的JOIN操作,包括Inner Join、Left Outer Join、Right Outer Join等。 - 示例...

    php代码实例

    随着时间的发展,PHP演变成一个强大的编程平台,支持多种数据库,如MySQL、PostgreSQL等,并且能够与HTML无缝集成,便于创建动态网页内容。PHP代码通常在服务器上运行,生成HTML,然后发送到客户端浏览器进行渲染。 ...

    eWebEditorManual_V5.5_CHS.pdf

    - **2.6.14 合并列(向右侧)**:将相邻的列合并成一列。 - **2.6.15 拆分列**:将一列分成多列。 - **2.6.16 删除列**:移除选定的列。 **2.7 文件上传及导入** - **2.7.1 远程文件自动上传**:支持直接通过URL上传...

Global site tag (gtag.js) - Google Analytics