测试数据
mysql> SELECT * FROM user;
+----+-----------+-----+---------------------+
| id | user_name | sex | create_at |
+----+-----------+-----+---------------------+
| 1 | 张三 | 1 | 2021-08-17 07:54:43 |
| 2 | 李四 | 1 | 2021-08-17 07:54:43 |
| 3 | 王五 | 1 | 2021-08-17 07:55:03 |
| 4 | 小芳 | 0 | 2021-08-17 07:55:03 |
| 5 | 小香 | 0 | 2021-08-17 07:55:21 |
| 6 | 赵六 | 1 | 2021-08-17 07:55:21 |
+----+-----------+-----+---------------------+
6 rows in set (0.00 sec)
concat 将多个字符串连接成一个字符串
CONCAT()
函数用于将多个字符串连接成一个字符串。
mysql> SELECT CONCAT(id,user_name) FROM user;
+----------------------+
| CONCAT(id,user_name) |
+----------------------+
| 1张三 |
| 2李四 |
| 3王五 |
| 4小芳 |
| 5小香 |
| 6赵六 |
+----------------------+
6 rows in set (0.00 sec)
concat_ws 带分隔符
使用函数CONCAT_WS()
。使用语法为:CONCAT_WS(separator,str1,str2,…)
。
CONCAT_WS()
代表 CONCAT With Separator
,是CONCAT()
的特殊形式,第一个参数是其它参数的分隔符。
mysql> SELECT CONCAT_WS(',', id,user_name) FROM user;
+------------------------------+
| CONCAT_WS(',', id,user_name) |
+------------------------------+
| 1,张三 |
| 2,李四 |
| 3,王五 |
| 4,小芳 |
| 5,小香 |
| 6,赵六 |
+------------------------------+
6 rows in set (0.00 sec)
group_concat 分组
GROUP_CONCAT
函数返回一个字符串结果,该结果由分组中的值连接组合而成。
mysql> SELECT sex,GROUP_CONCAT(user_name) FROM user GROUP BY sex;
+-----+-----------------------------+
| sex | GROUP_CONCAT(user_name) |
+-----+-----------------------------+
| 0 | 小芳,小香 |
| 1 | 张三,李四,王五,赵六 |
+-----+-----------------------------+
2 rows in set (0.00 sec)
排序 ORDER BY
mysql> SELECT sex, GROUP_CONCAT(user_name ORDER BY id DESC) FROM user GROUP BY sex;
+-----+------------------------------------------+
| sex | GROUP_CONCAT(user_name ORDER BY id DESC) |
+-----+------------------------------------------+
| 0 | 小香,小芳 |
| 1 | 赵六,王五,李四,张三 |
+-----+------------------------------------------+
2 rows in set (0.00 sec)
分隔符SEPARATOR
mysql> SELECT sex,GROUP_CONCAT(user_name SEPARATOR ';') FROM user GROUP BY sex;
+-----+---------------------------------------+
| sex | GROUP_CONCAT(user_name SEPARATOR ';') |
+-----+---------------------------------------+
| 0 | 小芳;小香 |
| 1 | 张三;李四;王五;赵六 |
+-----+---------------------------------------+
2 rows in set (0.00 sec)