`

Mysql合并查询结果

阅读更多
本文通过实例介绍了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)

在工作中在库总导入好友ID的时候遇见的问题,在uchome_friend中的好友都是一一对应的存在数据库中,而我的新库中好友的ID是使用逗号分割存到一个字段中的,现在我要将uchome_friend的好友导入到新的库中,首先肯定是要分组的,然后按照UID分组之后该如果将FUID连接成1,2,3这样的形式呢,我知道在MYSQL中是有个concat()函数来连接字符的,但是这个函数只能处理这样的类型,concat(fuid,'_sky.jpg');如果要连接所有的FUID必须这样concat(fuid,fuid)而且下一个fuid必须是uchome_friend中的下一个ID,但是这里并不能做到,后来查资料发现了group_concat()这个函数,很好,很强大!呵呵

引自:http://hi.baidu.com/caixudong/blog/item/6c47de59c33c28222834f0ed.html
分享到:
评论

相关推荐

    mysql临时表用法分析【查询结果可存在临时表中】

    INTO` 语句,但MySQL不支持直接将查询结果存入临时表,所以通常采用 `CREATE TABLE AS SELECT` 或 `INSERT INTO ... SELECT` 的方式: ```sql -- 创建临时表并填充数据 CREATE TABLE tmp_table_name AS SELECT ...

    MYSQL查询操作教程

    MYSQL 查询操作也可以使用 INTO 语句将查询结果制表,例如: ```sql SELECT 学生表.姓名,监护人表.电话 INTO 电话表 FROM 学生表,监护人表 WHERE 学生表.学号=监护人表.学号 ``` 这将将查询结果制成新表“电话表”...

    mysql数据查询操作-实验训练2.docx

    * 了解如何使用 UNION 语句合并多个查询结果 * 了解如何使用 INTERSECT 语句获取公共记录 * 了解如何使用 EXCEPT 语句获取差异记录 7. 排序和分组: * 了解如何使用 ORDER BY 语句对记录进行排序 * 了解如何使用 ...

    06-3-数据库查询-合并查询结果并去重

    本文将详细介绍如何在MySQL中使用`UNION`和`UNION ALL`来合并查询结果,并讨论如何去重。 #### 1. UNION 与 UNION ALL 的概念 - **UNION**:用于合并两个或多个`SELECT`语句的结果集。使用`UNION`时,结果集中只会...

    mysql查询根据列按条件统计总数

    - 使用`UNION`操作符将子查询`b`的结果与另一个统计查询合并。 - 最后一个查询计算`t2`表中`列1`的数量,并将结果与其他统计信息一起显示,这里的`列2`、`列3`等为空字符串。 通过这种方式,我们可以灵活地组合不同...

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

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

    Mysql合并表Merge引擎

    当从合并表中执行查询,从多个表返回的结果就像从一个表返回的结果一样。 2.要创建合并表的前提是每一个合并的表必须有同样的表定义(表结构、索引),并且子表的存储引擎必须是Myisam。 3.合并表的创建方法

    MySql高级Sql查询

    5. **集合操作**:UNION和INTERSECT用于合并或找出多个查询结果的交集。UNION ALL会包含所有不重复的行,而INTERSECT只保留共同的行。 6. **存储过程**:存储过程是一组预编译的SQL语句,可以封装成一个命名的单元...

    mysql多条件查询

    合并集查询使用`UNION`或`UNION ALL`关键字来合并两个或更多查询的结果集。 - **UNION**: 只保留唯一行。 - **UNION ALL**: 包括所有行,即使有重复行。 例如,合并两个部门的员工信息: ```sql SELECT * FROM ...

    mysql多表查询和EXISTS查询性能对比

    ### MySQL多表查询和EXISTS查询性能对比 #### 测试环境 在进行MySQL多表查询与EXISTS查询的性能对比之前,首先需要了解测试环境的相关配置。虽然原文中并未给出具体的测试环境细节,但在实际操作中,这一步骤至关...

    MySql基本查询、连接查询、子查询、正则表达查询讲解

    6、合并查询结果 7、为表和字段取别名 8、使用正则表达式查询 什么是查询? 怎么查的? 数据的准备如下: [sql] view plain copy create table STUDENT( STU_ID int primary KEY, STU_NAME char(10) not null, ...

    使用案例加深对MySQL SQL查询理解

    在MySQL中,这些语句可以与WHERE子句结合,以根据特定条件筛选结果。 例如,当我们需要从一个大表中查找特定条件的数据时,可以使用如下查询: ```sql SELECT * FROM 表名 WHERE 条件; ``` 这里的`*`代表所有列,`...

    计算机病毒与防护:MYSQL联合查询上.ppt

    6. **判断列输出**:在某些情况下,不是所有的查询结果都会显示在页面上。攻击者可能需要识别哪些列是可以输出的。这可以通过尝试不同的SELECT语句结构,比如只选择特定列或者使用NULL,来确定哪些部分可以影响页面...

    mysql查询gitbook书籍

    8. **ORDER BY子句**:用于对查询结果进行排序,可以按升序(ASC)或降序(DESC)排列。 9. **索引**:为了提高查询性能,可以在列上创建索引。B-Tree、Hash、Full-text和Spatial索引是常见的类型。 10. **视图**...

    Mysql查询重复语句

    - **数据整合**:当合并多个来源的数据时,可能会出现重复记录,使用这些查询可以帮助确保最终数据集的质量。 - **数据监控**:定期执行这些查询有助于及时发现数据质量问题,从而采取相应措施进行修正。 #### 总结...

    mysql行转列(将同一列下的不同内容的几行数据,转换成几列显示)、列转行、行列汇总、合并显示

    MySQL 合并显示是将多个查询结果合并到一个查询结果的操作。例如,我们可以使用 UNION ALL 语句来将多个查询结果合并到一个查询结果。 SELECT userid, SUM(IF(`subject`='语文', score, 0)) AS 语文, SUM(IF...

    MySQL海量数据查询优化策略.

    在处理MySQL海量数据查询优化时,我们需要关注的策略包括但不限于以下几点: 1. 优化索引使用:避免全表扫描至关重要。为此,应当在查询条件(WHERE)和排序(ORDER BY)涉及的列上创建索引。索引有助于数据库管理...

    Mysql、oracle、Sybase数据库两列合并成一列的sql语句

    本文将详细介绍如何在MySQL、Oracle以及Sybase三种主流数据库中使用SQL语句来完成两列数据的合并操作。 ### 1. MySQL中的两列合并 在MySQL中,可以使用`CONCAT()`函数或者连接运算符`+`来合并两个字段。但是,需要...

Global site tag (gtag.js) - Google Analytics