首页 > 数据库技术 > 详细

MySQL之CONCAT,CONCAT_WS,GROUP_CONCAT

时间:2020-04-29 11:50:48      阅读:70      评论:0      收藏:0      [点我收藏+]

原文:https://baijiahao.baidu.com/s?id=1595349117525189591&wfr=spider&for=pc

demo表:

CREATE TABLE `student` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT ‘ID‘,
  `name` varchar(255) DEFAULT NULL COMMENT ‘名称‘,
  `score` int(11) DEFAULT NULL COMMENT ‘分数‘,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8 COMMENT=‘学生分数表‘;

添加SQL:

INSERT INTO `demo`.`student` (`id`, `name`, `score`) VALUES (‘1‘, ‘小明‘, ‘87‘);
INSERT INTO `demo`.`student` (`id`, `name`, `score`) VALUES (‘2‘, ‘小美‘, ‘98‘);
INSERT INTO `demo`.`student` (`id`, `name`, `score`) VALUES (‘3‘, ‘小爱‘, ‘97‘);
INSERT INTO `demo`.`student` (`id`, `name`, `score`) VALUES (‘4‘, ‘小王‘, ‘97‘);
INSERT INTO `demo`.`student` (`id`, `name`, `score`) VALUES (‘5‘, ‘小爱‘, ‘97‘);
INSERT INTO `demo`.`student` (`id`, `name`, `score`) VALUES (‘6‘, ‘小明‘, ‘87‘);

CONCAT,CONCAT_WS,GROUP_CONCAT的SQL:

-- 1.连接字符
SELECT CONCAT(id, name, score) AS info FROM student; 
-- 2.连接字符并且可以在中间加字符
SELECT CONCAT_WS(‘,‘,id, name, score) AS info FROM student;
-- 3.如果中间字符为null,结果为null
SELECT CONCAT_WS(null,id, name, score) AS info FROM student;
-- 4.name相同最小的id
SELECT name, MIN(id) FROM student GROUP BY name;
-- 5.name相同的id
SELECT name, GROUP_CONCAT(id) FROM student GROUP BY name;
-- 6.id号从大到小排序,且用‘_‘作为分隔符:
SELECT name, GROUP_CONCAT(id ORDER BY id DESC SEPARATOR ‘_‘) FROM student GROUP BY name;
-- 7.查询以name分组的所有组的id和score
SELECT name, GROUP_CONCAT(CONCAT_WS(‘-‘,id,score) ORDER BY id) FROM student GROUP BY name;

效果图:

技术分享图片

 

 

技术分享图片

 

 

技术分享图片

 

 

技术分享图片

 

 

技术分享图片

 

 

技术分享图片

 

 

技术分享图片

 

MySQL之CONCAT,CONCAT_WS,GROUP_CONCAT

原文:https://www.cnblogs.com/raitorei/p/12800829.html

踩
(0)
赞
(0)
   
举报
评论 一句话评论(0)
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!