mysql合并同一列的值

我有如下的查询条件显示:

我希望最终显示的效果如图:

将id相同的group_name合并到一行。实现方法:在group_name前面加关键字group_concat.然后在sql语句最后加上group by id.

group_concat能将同一列的值以逗号分隔开,拼成一个字符串。(mysql自带)

第一个图的sql语句如下:

SELECT tr.id ,tig.group_name FROM tj_record tr

INNER JOIN tj_item_group_ex tige ON tr.id = tige.record_id

INNER JOIN tj_item_group tig ON tige.id = tig.id

WHERE tr.id IN (‘1407090008‘,‘1407090009‘) AND tige.id IN (‘27‘,‘31‘)

第二个图的sql语句如下:

SELECT tr.id ,GROUP_CONCAT(tig.group_name)
FROM tj_record tr

INNER JOIN tj_item_group_ex tige ON tr.id = tige.record_id

INNER JOIN tj_item_group tig ON tige.id = tig.id

WHERE tr.id IN (‘1407090008‘,‘1407090009‘) AND tige.id IN (‘27‘,‘31‘)

GROUP BY tr.id

红色标红的是差异部分。如果这样的话就不再需要在后台一个一个的拼字符串了。

mysql合并同一列的值

时间: 2024-10-11 13:48:56

mysql合并同一列的值的相关文章

【MySQL】unique列插入重复值解决方案

当在一个UNIQUE键上插入包含重复值的记录时,我们可以控制MySQL如何处理这种情况:使用IGNORE关键字或者ON DUPLICATE KEY UPDATE子句跳过INSERT.中断操作或者更新旧记录为新值. 测试如下: 如果现在插入一条违背唯一约束的记录,MySQL会中断操作,提示出错,在前面的INSERT语句添加IGNORE关键字时,如果认为语句违背了唯一约束,MySQL甚至不会尝试去执行这条语句,如下: 当有很多的INSERT语句需要被顺序地执行时,IGNORE关键字就使操作变得很方便

Mysql合并两列数据

实例: UPDATE x_yiyuanpinggu_nengli SET ch_yuzhongfangxiang = CONCAT(ch_yuanyuzhong,ch_mubiaoyuzhong) MySQL中concat函数 使用方法: CONCAT(str1,str2,-) 返回结果为连接参数产生的字符串.如有任何一个参数为NULL ,则返回值为 NULL. 效果举例:

poi获取合并单元格内的第一行第一列的值

当读取如图所示的excel时,显示为第1行 第1列 的内容是:合并单元格 其它在合并单元格区域内的单元格不显示 示例代码如下: 1 import java.io.FileInputStream; 2 import java.io.FileNotFoundException; 3 import java.io.IOException; 4 5 import org.apache.poi.hssf.usermodel.HSSFWorkbook; 6 import org.apache.poi.ss.

mysql 多行合并一列

mysql  多行合并一列 使用的函数为: GROUP_CONCAT(exp) 其中exp 的参数类似如下: (field order  by field   desc  separator ';'); 具体的例子如下: 创建表: CREATE TABLE `login` ( `Id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) DEFAULT NULL, PRIMARY KEY (`Id`) ) ENGINE=MyISAM AUTO

MySQL 批量修改某一列的值为另外一个字段的值

mysql> select * from fruit; +----+--------+-------+ | id | name | price | +----+--------+-------+ | 1 | apple | 0 | | 2 | banana | 0 | | 3 | orange | 0 | | 4 | mango | 0 | | 5 | pomelo | 0 | +----+--------+-------+ 5 rows in set (0.00 sec) 要求很简单,将上面f

模拟Excel同一列相同值的单元格合并

背景 项目中有一个查询工作量,可以将查询的结果导出到Excel表中.在Excel工具中,有一个合并居中功能,可以将选中的单元格合并成一个大的单元格.现在需要在程序中直接实现查询结果的汇总, 问题分析 话不多说,上图分析: 如图,对于第一列,前三行的值都为A,那么就是需要执行合并.与此同时,1-3行后面的列采取同样的措施,约定前6列(下标0-5). 手动对1-3列进行分析的结果,如图,有点花哨!!! 可以看到结果中,对于整个1-3行后继的列操作依然如此. 这里要突出讲一下第3列(值为R),该列全部

NULL值比较,两个列的合并,列值按条件替换。

show create table 表名 -- 显示创建表的sql语句. 为已有的表增加新列.alter table 表名 add 列名 int NULL -- 此行加了一个int 类型 默认可以null的列. NULL表示:一个未定义的值.如何将列的值与NULL比较?可以用IS NULL,IS NOT NULL 或<=> 可以用<=>比较两个NULL值 ,NULL<=>NULL结果为true而不是未定义. CREATE TABLE `t1` ( `col1` char

MYSQL,分别用一条语句交换两列的值与两行的值

测试表: CREATE TABLE `test` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL, `order`varchar(255)DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8; 插入测试数据: INSERT INTO `bbkb_busticket`.`test` (`id

在WPS或Excel中多列合并成一列合并后中间加空格或-或逗号的写法,可参照以下方法,wps与excel操作与用法都相同

使用文本连接符&就可以做到了.例如要将A列和B列的数据连接并以逗号分隔,显示在C列,可以在C1中输入以下公式=A1&","&B1公式输入完成后,将C1的内容向下填充即可. 如果是需要合并两列的内容,操作上则需要多几个步骤了,这里以A列和B列的数据连接为例,方法如下: 在原本的C列前面插入一列(左键点击C列的列标→右键→插入) 在C1中输入公式=A1&","&B1 将C1向下填充 选择C列,然后复制(右键→复制) 点击A列,鼠标