mysql CONCAT,CONCAT_WS,GROUP_CONCAT

CONCAT()

CONCAT()函数用于将多个字符串连接成一个字符串。

SELECT CONCAT('1', '2'); -- 12
SELECT CONCAT('1', ' ','2'); -- 1 2
SELECT CONCAT('1', NULL,'2'); -- null

CONCAT_WS

CONCAT_WS() 代表 CONCAT With Separator ,是CONCAT()的特殊形式。第一个参数是其它参数的分隔符。分隔符的位置放在要连接的两个字符串之间。分隔符可以是一个字符串,也可以是其它参数。如果分隔符为 NULL,则结果为 NULL。函数会忽略任何分隔符参数后的 NULL 值。但是CONCAT_WS()不会忽略任何空字符串。

SELECT CONCAT_WS('_','1','2'); -- 1_2
SELECT CONCAT_WS('_','1', ' ','2'); -- 1_ _2
SELECT CONCAT_WS('_','1', NULL,'2'); -- 1_2

GROUP_CONCAT

GROUP_CONCAT函数返回一个字符串结果,该结果由分组中的值连接组合而成。

SELECT
    one_name,
    GROUP_CONCAT(two_id)
FROM
    one
GROUP BY
    one_name

 示例:

1
2
3
4
5
6
7
8
9
10
11
12
CREATE TABLE `t_orders` (
  `id` int NOT NULL AUTO_INCREMENT,
  `userId` int DEFAULT NULL,
  `orderId` varchar(20) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
INSERT INTO `t_orders` VALUES ('1', '1', '100');
INSERT INTO `t_orders` VALUES ('2', '1', '101');
INSERT INTO `t_orders` VALUES ('3', '1', '102');
INSERT INTO `t_orders` VALUES ('4', '2', '200');
INSERT INTO `t_orders` VALUES ('5', '2', '201');
INSERT INTO `t_orders` VALUES ('6', '3', '300');
1
2
3
4
5
6
7
8
-- 普通查询
select userId as 用户ID, orderId as 订单 from t_orders; 
-- 以 userId 分组,把 orderId 字段的值打印在一行,逗号分隔
select userId as 用户ID, group_concat(orderId) as 订单 from t_orders group by userId; 
-- 以 userId 分组,把 orderId 字段的值打印在一行,分号分隔
select userId as 用户ID, group_concat(orderId separator ';') as 订单 from t_orders group by userId;
-- 以 userId 分组,把 orderId 字段的值打印在一行,降序排列
select userId as 用户ID, group_concat(orderId order by orderId desc) as 订单列表 from t_orders group by userId;

 

 

参考: http://www.mybatis.cn/archives/847.html

posted @   草木物语  阅读(115)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
历史上的今天:
2020-06-18 Jenkins git ssh
点击右上角即可分享
微信分享提示