mysql函数concat与group_concat使用说明

时间:2022-01-11 02:55:29

mysql函数concat与group_concat使用说明
concat()函数
<pre>
mysql> select concat(‘,‘,name,‘,‘) from `user`;
--------------------------
| concat(‘,‘,fdipzone,‘,‘) |
--------------------------
| ,fdipzone, |
--------------------------
1 row in set (0.00 sec)
</pre>


concat_ws() 函数
<pre>
mysql> select concat_ws(‘,‘,country_code,phone,region) from `user`;
------------------------------------------
| concat_ws(‘,‘,country_code,phone,region) |
------------------------------------------
| 86,13794830550,GZ |
------------------------------------------
1 row in set (0.00 sec)
</pre>

group_concat()函数
<pre>
mysql> select * from `article_in_category`;
---- ------------ -------------
| id | article_id | category_id |
---- ------------ -------------
| 1 | 1 | 1 |
| 2 | 1 | 2 |
| 3 | 1 | 3 |
| 4 | 2 | 4 |
| 5 | 2 | 3 |
| 6 | 2 | 5 |
| 7 | 3 | 1 |
| 8 | 3 | 5 |
| 9 | 3 | 6 |
| 10 | 4 | 8 |
---- ------------ -------------
</pre>

<pre>
mysql> select article_id,group_concat(category_id order by category_id asc) from `article_in_category` group by article_id;
------------ ----------------------------------------------------
| article_id | group_concat(category_id order by category_id asc) |
------------ ----------------------------------------------------
| 1 | 1,2,3 |
| 2 | 3,4,5 |
| 3 | 1,5,6 |
| 4 | 8 |
------------ ----------------------------------------------------
4 rows in set (0.00 sec)
</pre>

ps:category_id order by category_id asc 这个是 字段里面的的排序 比方说1,2,3就是升序啦

注意:group_concat()函数对返回的结果有长度限制,默认为1024字节

<pre>
mysql> set global group_concat_max_len=2048;
Query OK, 0 rows affected (0.03 sec)

mysql> show global variables like ‘%group_concat_max_len%‘;
---------------------- -------
| Variable_name | Value |
---------------------- -------
| group_concat_max_len | 2048 |
---------------------- -------
</pre>