MySQL 字符串拼接 concat、concat_ws、lpad、rpad、group_concat
MySQL中实现字符串拼接有以下几种方法:concat、concat_ws、lpad、rpad、group_concat,他们分别适用拼接字符串、用分隔符拼接、按照分组拼接、拼接后保留n位字符等不同场景。
一、拼接方式
二、具体用法
类型 | 类别 | 函数名 | 描述 |
---|---|---|---|
多列拼接成一列 | |||
拼接字符串 | |||
concat(str1,str2...strn) | 字符串 str1,str2 等多个字符串合并为一个字符串 | ||
用分隔符拼接 | |||
concat_ws(delimiter, str1,str2...strn) | 同concat(str1,str2,...) 函数,但是每个字符串之间要加上分隔符 delimiter | ||
concat(str1,delimiter,...,delimiter,strn) | 字符串 str1,delimiter,str2 等多个字符串合并为一个字符串 | ||
拼接后保留n位字符 | |||
lpad(str1,length,str2) | 在字符串 str1 的开始处填充字符串 str2,使字符串长度达到 length | ||
rpad(str1,length,str2) | 在字符串 str1 的结尾处添加字符串 str2,使字符串的长度达到 length | ||
多行拼接成一列 | 按照分组拼接 | group_concat(str1 order by str2 desc Separator str3) | 按照分组拼接字符串。distinct去重;order by子句用于组内排序;separator分隔符是一个字符串值,缺省为一个逗号。 |
扩展
前往查看:MySQL 字符串函数
三、实例
(1)多列拼接成一列。
select
#拼接多个字符串:concat('student', '学生', 12, '%'), #student学生12%
#拼接多个字符串,并添加分隔符:concat_ws('+', 'student', '学生', 12, '%'), #student+学生+12+%concat('student','+', '学生','+', 12,'+', '%'), #student+学生+12+%
#将字符串 '12.45' 拼接到 '%' 字符串的开始处,最终保留5个字符:lpad('%',5,'12.45'), #12.4%
#将字符串 '%' 拼接到 '12.45' 字符串的结尾处,最终保留5个字符:rpad('12.45',6,'%') #12.45%#输出结果:student学生12%|student+学生+12+%|student+学生+12+%|12.4%|12.45%
(2)按照分组拼接:多行拼接成一列
select
#按照学生姓名分组拼接字符串group_concat(name), #李明,张三,孙华,刘平,孙华
#按照去重后的学生姓名分组拼接字符串group_concat(distinct name), #刘平,孙华,张三,李明
#按照学生姓名分组拼接字符串, 拼接按照name升序的先后顺序group_concat(name order by name), #刘平,孙华,孙华,张三,李明
#按照学生姓名分组拼接字符串,并添加分隔符';'group_concat(name Separator ';'), #李明;张三;孙华;刘平;孙华
#按照学生姓名分组拼接字符串, 拼接按照name升序的先后顺序, 并添加分隔符';'group_concat(name order by name desc Separator ';'), #李明;张三;孙华;孙华;刘平
#按照去重后的(学生姓名和成绩)分组拼接字符串, 拼接按照name升序的先后顺序, 并添加分隔符';'group_concat(distinct concat_ws('、',name,score) order by name desc Separator ';') #李明、67;张三、74;孙华、90;孙华、87;刘平、56
from students#输出结果:李明,张三,孙华,刘平,孙华|刘平,孙华,张三,李明|刘平,孙华,孙华,张三,李明|李明;张三;孙华;刘平;孙华|李明;张三;孙华;孙华;刘平|李明、67;张三、74;孙华、90;孙华、87;刘平、56
students 表 (id表示主键,name是姓名,score是平均成绩)
id | name | score |
---|---|---|
1 | 李明 | 67 |
2 | 张三 | 74 |
3 | 孙华 | 87 |
4 | 刘平 | 56 |
5 | 孙华 | 90 |
创建 students 表的代码
-- ----------------------------
-- Table structure for students
-- ----------------------------
DROP TABLE IF EXISTS `students`;
CREATE TABLE `students` (`id` int(11) NOT NULL,`name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '姓名',`score` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '成绩',PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of students
-- ----------------------------
INSERT INTO `students` VALUES (1, '李明', '67');
INSERT INTO `students` VALUES (2, '张三', '74');
INSERT INTO `students` VALUES (3, '孙华', '87');
INSERT INTO `students` VALUES (4, '刘平', '56');
INSERT INTO `students` VALUES (5, '孙华', '90');
MySQL 字符串拼接 concat、concat_ws、lpad、rpad、group_concat相关推荐
- mysql字符串拼接 空值_mysql字符串拼接并设置null值的实例方法
#字符串拼接 concat(s1,s2); 将表中last_name和first_name中的字符串拼接 select concat(last_name,first_name) as 姓名 from ...
- 详解MySQL字符串函数CONCAT()、CONCAT_WS()、INSERT()、REPLACE()、LOWER()、UPPER()用法(二)
文章目录 一.合并字符串函数CONCAT()和CONCAT_WS() 1.CONCAT() 2.CONCAT_WS() 二.替换字符串INSERT()和REPLACE 1.INSERT() 2.REP ...
- JAVA的MySQL字符串拼接_字符串的拼接-MYSQL
SQL允许两个或者多个字段之间进行计算,字符串类型的字段也不例外.比如我们需要以"工号+姓名"的方式在报表中显示一个员工的信息,那么就需要把工号和姓名两个字符串类型的字段拼接计算: ...
- MySQL 字符串拼接
在Mysql 数据库中存在两种字符串连接操作.具体操作如下 一. 语法: 1. CONCAT(string1,string2,-) 说明 : string1,string2代表字符串,concat ...
- MySQL字段拼接Concat
有时候,从数据库中拿出的数据并不是我们想要的格式,比如,有以下的vendors表 如果,想以 name (location)的格式展现出来,那么就要用到MySQL的Concat了. Concat()拼 ...
- mysql 新增拼接_mysql insert into新增group_concat查询出来拼接的数据
mysql insert into新增group_concat查询出来拼接的数据如何实现? 代码如下: INSERT INTO yt_keywords ( id, post_keywords ) SE ...
- mysql存储过程concat_mysql 存储过程 CONCAT 字符串拼接
mysql 存储过程 CREATE PROCEDURE pro_province_report (IN startDate VARCHAR(),IN endDate VARCHAR(),IN Sour ...
- mysql与oracle互转【数据库条件判断+数据库日期+数据库字符串拼接+数据库获取星期】
mysql与oracle互转 对比 一览表 1.条件判断 2.日期增减 3.日期格式 4.字符串拼接 5.获取星期 相同 对比 一览表 功能 mysql oracle 条件判断 if(expr1,ex ...
- mysql groupby字符串拼接
使用group_concat聚合函数将字符串拼接起来: select buyer_id,group_concat(query) from order_source where query !=&qu ...
最新文章
- 和12岁小同志搞创客开发:如何选择合适的传感器?
- android离散点贝塞尔曲线,离散点拟合曲线贝塞尔曲线B样条.ppt
- 使用Typescript重写axios
- linux i2c 设备节点读写
- 用python 中的链表 实现 截取其中一部分_Python数据结构——链表的实现
- 飞桨抠图直播2020.4.1
- 获取硬盘总容量,柱面数,磁道数,扇区数
- 史上最全AI论文集结:近千篇论文分门别类整理好
- 软工总结暨团队成员自评(胡骏)
- vmware ethx的修改
- 由DB2分页想到的,关于JDBC ResultSet 处理大数据量
- oracle分析函数技术详解(配上开窗函数over())
- 安装linux需要最少磁盘分区是多少,320G硬盘只安装Linux分区方案
- _stdcall的作用
- 手机连接电脑后,QT的QDIR怎么读取手机文件路径
- c语言编译器怎么防止优化变量,volatile关键字的作用:防止变量被编译器优化
- 西安交大计算机学院 栾佳锡,史椸-西安交通大学-自动化科学与工程学院
- react-native系列(13)动画篇:Animated动画库和LayoutAnimation布局动画详解
- what 's Trac?
- PS容器包装样机设计教程分享