mysql把同一条数据中的不同字段 拼接成一个字段返回

1. 把同一条数据中的不同字段 拼接成一个字段返回(记录条数不变),用CONCAT

sql语句结构:

SELECT    CONCAT(【要拼接的的字段】,".", 【要拼接的的字段】)   as  alias
FROM     【数据表】

 用版本号查询实例说明,例子中版本号表有两个:

《设备版本主表》

CREATE TABLE `devices_version` (
  `id` varchar(32) NOT NULL COMMENT '主键',
  `version_no` varchar(50) DEFAULT NULL COMMENT '主版本号',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='设备版本主表'

《设备版本子表》

CREATE TABLE `devices_version_sub` (
  `id` varchar(32) NOT NULL COMMENT '主键',
  `devices_version_id` varchar(32) DEFAULT NULL COMMENT '版本主表id',
  `version_no` varchar(64) DEFAULT NULL COMMENT '子版本号',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='设备版本子表'

需求是关联查询《设备版本主表》和《设备版本子表》,直接用sql把所有的版本号都查出来,不需要再通过程序把“主版本号”和“子版本号”拼接起来:

SELECT 
CONCAT(c.version_no,".",c.version_no_sub) AS version_no
FROM 
(
SELECT  a.`version_no`,  b.`version_no` AS version_no_sub   
FROM    devices_version a , devices_version_sub  b 
WHERE   a.`id` = b.`devices_version_id`  AND  a.`status` = '0'  
ORDER BY a.`version_no`+0 , b.`version_no`+0
) c

查询结果:

 

2. 把同一条数据中的不同字段,拼接成一个字段返回(记录合并为一条,默认用逗号分隔),用GROUP_CONCAT

sql语句结构:

SELECT       GROUP_CONCAT(【要拼接的的字段】,".", 【要拼接的的字段】)    as   alias
FROM        【数据表】

举例:

SELECT 
GROUP_CONCAT(c.version_no,".",c.version_no_sub) AS version_no
FROM 
(
SELECT  a.`version_no`,  b.`version_no` AS version_no_sub   
FROM    devices_version a , devices_version_sub  b 
WHERE   a.`id` = b.`devices_version_id`  AND  a.`status` = '0'  
ORDER BY a.`version_no`+0 , b.`version_no`+0
) c

查询结果:

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值