`
liangfeng366
  • 浏览: 77924 次
  • 性别: Icon_minigender_1
  • 来自: 安徽
社区版块
存档分类
最新评论

mysql分组查询把字段用逗号隔开

 
阅读更多
GROUP_CONCAT()是MySQL数据库提供的一个函数,通常跟GROUP BY一起用,并把查询的字段逗号分隔开,只支持字符类型的字段,整数型须要特殊写法。

下面是一些使用注意事项:

1.int字段的连接陷阱

当你用group_concat的时候请注意,连接起来的字段如果是int型,一定要转换成char再拼起来,
否则在你执行后(ExecuteScalar或者其它任何执行SQL返回结果的方法)返回的将不是一个逗号隔开的串,
而是byte[]。

该问题当你在SQLyog等一些工具中是体现不出来的,所以很难发现。

select group_concat(ipaddress) from t_ip 返回逗号隔开的串
select group_concat(id) from t_ip 返回byte[]
select group_concat(CAST(id as char)) from t_dep 返回逗号隔开的串
select group_concat(Convert(id , char)) from t_dep 返回逗号隔开的串

附Cast,convert的用法:
CAST(expr AS type), CONVERT(expr,type) , CONVERT(expr USING transcoding_name)
CAST() 和CONVERT() 函数可用来获取一个类型的值,并产生另一个类型的值。

这个类型 可以是以下值其中的 一个:

BINARY[(N)]
CHAR[(N)]
DATE
DATETIME
DECIMAL
SIGNED [INTEGER]
TIME
UNSIGNED [INTEGER]

2.长度陷阱
用group_concat连接字段的时候是有长度限制的,并不是有多少连多少。但你可以设置一下。

使用group_concat_max_len系统变量,你可以设置允许的最大长度。
程序中进行这项操作的语法如下,其中 val 是一个无符号整数:
SET [SESSION | GLOBAL] group_concat_max_len = val;
若已经设置了最大长度, 则结果被截至这个最大长度。

在SQLyog中执行 SET GLOBAL group_concat_max_len = 10 后,重新打开SQLyog,设置就会生效。

请注意,这种方式只是临时的,如要长久的修改,则需要修改mysql的配置节。

到my.cnf的mysqld节点下加上group_concat_max_len =99999……

重启mysql。
分享到:
评论

相关推荐

    一列保存多个ID(将多个用逗号隔开的ID转换成用逗号隔开的名称)

    `Department`表存储部门信息,包括`id`和`name`,而`Employee`表则包含员工信息,包括`id`、`name`以及`deptIds`字段,`deptIds`用于存储用逗号隔开的部门ID。初始化这两个表的数据后,我们的目标是获取每个员工对应...

    MySQL将一个字段中以逗号分隔的取出来形成新的字段实现

    在MySQL数据库中,经常遇到需要处理以逗号分隔的字段值的情况,这些字段通常用于存储多值数据,比如在本例中,`related_shop_ids`字段存储了多个商店ID,用逗号分隔。本篇文章将详细讲解如何将这样的字段拆分成多个...

    多字段 模糊查询 不要分

    在编程实现上,有许多库和工具支持模糊查询,例如Python的`fuzzywuzzy`库可以计算字符串的相似度,MySQL和PostgreSQL数据库系统内置了模糊查询功能。开发者还可以利用 Elasticsearch 这样的全文搜索引擎,它内置了...

    MySQL中将一列以逗号分隔的值行转列的实现

    前言 有时会遇到没有遵守第一范式设计模式的业务表。即一列中存储了多个属性值。如下表 pk value ...select distinct(substring_index(substring_index(a.col,',',b.help_topic_id+1),',',-1)) ...

    使用tp框架和SQL语句查询数据表中的某字段包含某值

    在IT开发过程中,使用tp框架和SQL语句查询数据表中的某字段包含特定值是一种常见的需求。本文主要讲解如何在tp(ThinkPHP)框架环境下,利用SQL的特定函数来实现此类查询,并提供了代码示例和注意事项。 首先,tp...

    JAVA串口助手接收数据并解析数据存入MySQL数据库中

    在本文中,我们将深入探讨如何使用Java开发一个串口助手应用程序,该程序能接收来自串行端口的数据并将其解析后存储到MySQL数据库中。首先,我们需要了解串口通信的基本概念,然后学习Java如何处理串口输入,接着是...

    MySQL命令大全

     ()在mysql的表中增加字段:  alter table dbname add column userid int(11) not null primary key auto_increment;  这样,就在表dbname中添加了一个字段userid,类型为int(11)。  7.mysql数据库的授权 ...

    关于mysql数据查询中 count()等聚集函数,关键字limit,group by,having的一些用法

    2、查询结果是多项的时候,用逗号隔开: 3、聚集函数count()的用法 count 也就是数量; 例如,查询表中选修CS课程的人数: 查询表中所有课程的选修人数: group by 表示 以······分组, 查询表中被选人数...

    mysql数据库基础知识

    例如,在创建表时,每一列之间都需要用逗号分隔开。 ```sql CREATE TABLE students ( id INT, name VARCHAR(50), age INT ); ``` ##### 2. 键盘布局 建议使用美式键盘进行MySQL操作,因为一些特殊字符可能会因...

    CSV 导入mysql 数据库

    CSV文件以纯文本形式存储数据,每一行代表一条记录,列之间用逗号分隔。例如: ``` 姓名,年龄,城市 张三,25,北京 李四,30,上海 王五,28,广州 ``` 在CSV导入MySQL的过程中,我们通常会使用PHP进行编程操作,因为PHP...

    MySQL单表查询操作实例详解【语法、约束、分组、聚合、过滤、排序等】

    1. `SELECT`:用于指定要从表中选取的字段,可以是多个,用逗号隔开。 2. `FROM`:指定要查询的表名。 3. `WHERE`:定义查询的条件,筛选满足特定条件的记录。 4. `GROUP BY`:对数据进行分组,常与聚合函数一起使用...

    2018年3月计算机二级MySQL练习题一

    请使用SELECT INTO OUTFILE语句,备份数据库db_test中表content的全部数据到C盘的BACKUP目录下一个名为backupcontent.txt的文件中,要求字段值如果是字符则用双引号标注,字段值之间用逗号隔开,每行以问号为结束...

    MySQL高级查询之与Group By集合使用介绍

    在示例中,`GROUP_CONCAT(test_score)`会将`test_score`字段的值,对于每个`student_name`分组,合并成一个字符串,默认用逗号分隔。如果需要自定义分隔符,如空格,可以使用`SEPARATOR ' '`。如果想去除重复值并按...

    mysql学习记录

    每个字段由一个分隔符(通常是逗号或制表符)分隔开,每一行代表一条完整的记录。CSV文件简单易读,易于创建和编辑,因此被广泛用于数据传输、备份以及导入导出等场景。 #### 二、为什么需要将CSV文件导入MySQL? ...

    成语字典,5万+,mysql+sqlite

    项目包含两个关键部分:一个CSV文件(idioms.csv)和一个SQL文件(idioms.sql),分别对应了MySQL和SQLite这两种流行的数据库系统,旨在为用户提供便捷的成语查询和管理服务。 首先,我们来看 idioms.csv 文件,这是一...

    C语言连接MySQL数据库.docx

    根据提供的文档信息,本文将详细解析如何使用C语言与MySQL数据库进行交互操作,重点在于连接数据库及执行数据插入操作。 ### 一、环境配置与基本概念 #### 1.1 环境准备 在开始编写C语言程序之前,需要确保安装了...

    全国省市区行政划分数据_省市区MYSQL_

    `全国省市区行政划分数据.txt`文件很可能是以某种格式(如CSV或TSV)列出这些信息,每一行代表一个行政区域,列之间用特定分隔符隔开,例如逗号或制表符。数据文件的内容可能如下: ``` province_id,province_name,...

    IP_201909.rar

    每个记录由一系列字段组成,字段之间用逗号分隔。在"IP_201909.csv"这个例子中,我们可以预期数据包含多个IP地址及其对应的归属地信息,可能包括国家、地区、城市、运营商等详细信息。这样的数据对于网络分析、地理...

    易语言mysql简单导出EXCEL

    接下来是执行SQL查询,从MySQL中获取需要导出的数据。你可以编写一个SELECT语句,指定要导出的表和字段。例如,如果你想从"users"表中导出所有记录,可以写成: ```易语言 .查询语句 = “SELECT * FROM users” ....

Global site tag (gtag.js) - Google Analytics