本文共 1177 字,大约阅读时间需要 3 分钟。
Concat 是 SQL 中用于将两个字符串连接起来的函数。它可以将多个字符串参数依次连接,返回一个单一的字符串结果。
SELECT CONCAT('FIRST ', 'SECOND');
执行该语句会返回 FIRST SECOND
。如果你想连接多个字段,可以使用逗号等分隔符:
SELECT CONCAT(id, name, work_date) FROM employee_tbl;
这样会将每个员工的 ID、姓名和工作日期连接在一起,结果为 1John2007-01-24
等。
Concat_ws 是 Concat With Separator 的缩写,用于在指定的分隔符下连接多个字符串。分隔符可以是任意字符,包括空字符串。
CONCAT_WS(separator, str1, str2, ...)
使用逗号作为分隔符:
SELECT concat_ws(',','11','22','33');
返回结果为 11,22,33
。
如果传入 NULL
,会忽略后续的 NULL
值:
SELECT concat_ws(',','11','22',NULL);
返回结果为 11,22
。
Group_concat 用于在分组操作中将多个字段的值连接在一起,通常用于聚合数据。默认的分隔符是逗号,可以根据需求更换分隔符。
GROUP BY [distinct] column_name
默认分隔符是逗号:
SELECT id, group_concat(name) FROM aa GROUP BY id;
返回结果为:
1 | 10,20,202 | 203 | 200,500
更改分隔符为分号:
SELECT id, group_concat(name separator ';') FROM aa GROUP BY id;
返回结果为:
1 | 10;20;202 | 203 | 200;500
去重后连接字段:
SELECT id, group_concat(distinct name) FROM aa GROUP BY id;
返回结果为:
1 | 10,202 | 203 | 200,500
按顺序排序:
SELECT id, group_concat(name order by name desc) FROM aa GROUP BY id;
返回结果为:
1 | 20,20,102 | 203 | 500,200
Concat 函数适用于简单的字符串连接,而 Concat_ws 可以指定分隔符,更加灵活。Group_concat 则用于分组数据的聚合,常用于展示多个字段的值。
转载地址:http://gmffk.baihongyu.com/