0
点赞
收藏
分享

微信扫一扫

MySql函数之CONCAT、CONCAT_WS、GROUP_CONCAT函数详解

进击的铁雾 2022-04-27 阅读 133
mysql

目录

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;

举报

相关推荐

0 条评论