目录
1、创建测试表和添加测试数据
2、CONCAT函数
2.1?功能描述
2.2?语法
2.3?实际举例sql
3、CONCAT_WS函数
3.1?功能描述
3.2?语法
3.3?实际举例sql
4、GROUP_CONCAT函数
4.1?功能描述
4.2?语法
4.3?实际举例sql
1、创建测试表和添加测试数据
/*
Navicat Premium Data Transfer
Source Server : test
Source Server Type : MySQL
Source Server Version : 50725
Source Host : localhost:3306
Source Schema : test
Target Server Type : MySQL
Target Server Version : 50725
File Encoding : 65001
Date: 22/04/2022 15:23:14
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for field_data
-- ----------------------------
DROP TABLE IF EXISTS `field_data`;
CREATE TABLE `field_data` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
`name` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '名称',
`type` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '类型名称',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 7 CHARACTER SET = utf8 COLLATE = utf8_unicode_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of field_data
-- ----------------------------
INSERT INTO `field_data` VALUES (1, '第1条数据', '语文');
INSERT INTO `field_data` VALUES (2, '第2条数据', '数学');
INSERT INTO `field_data` VALUES (3, '第3条数据', '英语');
INSERT INTO `field_data` VALUES (4, '第4条数据', '美术');
INSERT INTO `field_data` VALUES (5, '第5条数据', '体育');
INSERT INTO `field_data` VALUES (6, '第6条数据', NULL);
SET FOREIGN_KEY_CHECKS = 1;
2、CONCAT函数
2.1?功能描述
字符串 str1,str2?等多个字符串合并为一个字符串。
2.2?语法
CONCAT(str1,str2,...)
2.3?实际举例sql
SELECT
-- CONCAT(str1,str2,...) 基本语法
-- 拼接2个字段
CONCAT( NAME, type ) AS n1,
-- 拼接两个字段,中间使用&&连接
CONCAT( NAME, "&&",type ) AS n2
FROM
field_data;
?注意:?如果任何表达式是NULL值,则返回NULL。
3、CONCAT_WS函数
3.1?功能描述
同CONCAT(str1,str1,...) 函数,但是每个字符串之间要加上 x,x 可以是分隔符。
3.2?语法
CONCAT_WS(separator,str1,str2,...) ,separator就是需要的拼接分割符。
3.3?实际举例sql
SELECT
-- CONCAT_WS(separator,str1,str2,...) 基本语法
-- 拼接符号为逗号
CONCAT_WS( ',', NAME, type, id ) AS datas,
-- 拼接符为#号
CONCAT_WS( '#', NAME, type, id ) AS datas1
FROM
field_data;
4、GROUP_CONCAT函数
4.1?功能描述
GROUP_CONCAT()用于将一组中的数据拼起来即行转列。
4.2?语法
GROUP_CONCAT(expr)
4.3?实际举例sql
SELECT
-- GROUP_CONCAT(expr)
-- 默认是使用逗号拼接
GROUP_CONCAT(id,name) as n1,
-- 指定拼接使用#号
GROUP_CONCAT(id,"#",name) as n2 ,
-- 先使用CONCAT给字段值添加引号,然后在使用GROUP_CONCAT
GROUP_CONCAT( CONCAT( "'", NAME, "'" )) as name1,
-- 先使用CONCAT给字段值添加引号,并且里面根据ID排序,然后在使用GROUP_CONCAT
--group_concat函数支持order by内部排序
GROUP_CONCAT( CONCAT( "'", NAME, "'" ) ORDER BY id DESC ) as name2,
GROUP_CONCAT( CONCAT( "'", NAME,"-",type,"'" ) ) as name3
FROM
field_data;
|