概述
concat(str1,str2)
返回结果为连接参数产生的字符串。如有任何一个参数为NULL ,则返回值为 NULL。
MysqL> select concat('11','22','33');
+------------------------+
| concat('11','33') |
+------------------------+
| 112233 |
+------------------------+
1 row in set (0.00 sec)
MysqL的concat函数在连接字符串的时候,只要其中一个是NULL,那么将返回NULL
MysqL> select concat('11',null);
+------------------------+
| concat('11',null) |
+------------------------+
| NULL |
+------------------------+
1 row in set (0.00 sec)
concat_ws(separator,str1,str2)
contcat_ws() 代表 CONCAT With Separator ,是CONCAT()的特殊形式。第一个参数是其它参数的分隔符。分隔符的位置放在要连接的两个字符串之间。分隔符可以是一个字符串,也可以是其它参数。
注意:
如果分隔符为 NULL,则结果为 NULL。函数会忽略任何分隔符参数后的 NULL 值。与上方介绍的不一样的是,如果有null值,会将null进行过滤。
如连接后以逗号分隔
MysqL> select concat_ws(',','11','33');
+-------------------------------+
| concat_ws(','33') |
+-------------------------------+
| 11,22,33 |
+-------------------------------+
1 row in set (0.00 sec)
和MysqL中concat函数不同的是,concat_ws函数在执行的时候,不会因为NULL值而返回NULL
MysqL> select concat_ws(',NULL);
+-------------------------------+
| concat_ws(',NULL) |
+-------------------------------+
| 11,22 |
+-------------------------------+
1 row in set (0.00 sec)
group_concat函数
语法
group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符'])
基本查询
MysqL> select * from aa;
+------+------+
| id| name |
+------+------+
|1 | 10|
|1 | 20|
|1 | 20|
|2 | 20|
|3 | 200 |
|3 | 500 |
+------+------+
6 rows in set (0.00 sec)
以id分组,把name字段的值打印在一行,逗号分隔(默认)
MysqL> select id,group_concat(name) from aa group by id;
+------+--------------------+
| id| group_concat(name) |
+------+--------------------+
|1 | 10,20,20|
|2 | 20 |
|3 | 200,500|
+------+--------------------+
3 rows in set (0.00 sec)
以id分组,把name字段的值打印在一行,分号分隔
MysqL> select id,group_concat(name separator ';') from aa group by id;
+------+----------------------------------+
| id| group_concat(name separator ';') |
+------+----------------------------------+
|1 | 10;20;20 |
|2 | 20|
|3 | 200;500 |
+------+----------------------------------+
3 rows in set (0.00 sec)
以id分组,把去冗余的name字段的值打印在一行,逗号分隔
MysqL> select id,group_concat(distinct name) from aa group by id;
+------+-----------------------------+
| id| group_concat(distinct name) |
+------+-----------------------------+
|1 | 10,20|
|2 | 20 |
|3 | 200,500 |
+------+-----------------------------+
3 rows in set (0.00 sec)
以id分组,把name字段的值打印在一行,逗号分隔,以name排倒序
MysqL> select id,group_concat(name order by name desc) from aa group by id;
+------+---------------------------------------+
| id| group_concat(name order by name desc) |
+------+---------------------------------------+
|1 | 20,10 |
|2 | 20|
|3 | 500,200|
+------+---------------------------------------+
3 rows in set (0.00 sec)
相关文章
总结
如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您喜欢交流学习经验,点击链接加入交流1群:1065694478(已满)交流2群:163560250
最后
以上就是细心小海豚为你收集整理的mysql concat 能否返回数字_mysql中concat函数的使用相关总结的全部内容,希望文章能够帮你解决mysql concat 能否返回数字_mysql中concat函数的使用相关总结所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复