MySQL字符串如何正确连接函数

数据库 MySQL
此文主要向大家描述的是MySQL字符串连接函数的具体操作方案,以及对操作中值得我们大家注意的事项的描述,以下就是文章的主要内容。

以下的文章主要向大家介绍的是MySQL字符串连接函数的具体操作方案,我们主要是以MySQL数据库中concat函数为例来进行详细说明,以下就是对MySQL字符串连接函数的具体操作的详细内容描述。

使用方法:

CONCAT(str1,str2,…)

返回结果为连接参数产生的MySQL字符串。如有任何一个参数为NULL ,则返回值为 NULL。

注意:

如果所有参数均为非二进制字符串,则结果为非二进制字符串。

如果自变量中含有任一二进制字符串,则结果为一个二进制字符串。

一个数字参数被转化为与之相等的二进制字符串格式;若要避免这种情况,可使用显式类型 cast, 例如:

SELECT CONCAT(CAST(int_col AS CHAR), char_col)

MySQL的concat函数可以连接一个或者多个MySQL字符串,如

  1. MySQL> select concat('10');  
  2. +--------------+  
  3. | concat('10') |  
  4. +--------------+  
  5. | 10 |  
  6. +--------------+  
  7. 1 row in set (0.00 sec)  
  8. MySQL> select concat('11','22','33');  
  9. +------------------------+  
  10. | concat('11','22','33') |  
  11. +------------------------+  
  12. | 112233 |  
  13. +------------------------+  
  14. 1 row in set (0.00 sec)  

 

MySQL的concat函数在连接MySQL字符串的时候,只要其中一个是NULL,那么将返回NULL

  1. MySQL> select concat('11','22',null);  
  2. +------------------------+  
  3. | concat('11','22',null) |  
  4. +------------------------+  
  5. | NULL |  
  6. +------------------------+  
  7. 1 row in set (0.00 sec) 

 

MySQL中concat_ws函数

使用方法:

CONCAT_WS(separator,str1,str2,...)

CONCAT_WS() 代表 CONCAT With Separator ,是CONCAT()的特殊形式。***个参数是其它参数的分隔符。分隔符的位置放在要连接的两个MySQL字符串之间。分隔符可以是一个字符串,也可以是其它参数。

注意:

如果分隔符为 NULL,则结果为 NULL。函数会忽略任何分隔符参数后的 NULL 值。

如连接后以逗号分隔

  1. MySQL> select concat_ws(',','11','22','33');  
  2. +-------------------------------+  
  3. | concat_ws(',','11','22','33') |  
  4. +-------------------------------+  
  5. | 11,22,33 |  
  6. +-------------------------------+  
  7. 1 row in set (0.00 sec)  

 

和MySQL中concat函数不同的是, concat_ws函数在执行的时候,不会因为NULL值而返回NULL

  1. MySQL> select concat_ws(',','11','22',NULL);  
  2. +-------------------------------+  
  3. | concat_ws(',','11','22',NULL) |  
  4. +-------------------------------+  
  5. | 11,22 |  
  6. +-------------------------------+  
  7. 1 row in set (0.00 sec) 

 

MySQL中group_concat函数

完整的语法如下:

group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符'])

基本查询

 

  1. MySQL> select * from aa;  
  2. +------+------+  
  3. | id| name |  
  4. +------+------+  
  5. |1 | 10|  
  6. |1 | 20|  
  7. |1 | 20|  
  8. |2 | 20|  
  9. |3 | 200 |  
  10. |3 | 500 |  
  11. +------+------+  
  12. 6 rows in set (0.00 sec) 

 

以id分组,把name字段的值打印在一行,逗号分隔(默认)

 

  1. MySQL> select id,group_concat(name) from aa group by id;  
  2. +------+--------------------+  
  3. | id| group_concat(name) |  
  4. +------+--------------------+  
  5. |1 | 10,20,20|  
  6. |2 | 20 |  
  7. |3 | 200,500|  
  8. +------+--------------------+  
  9. 3 rows in set (0.00 sec) 

 

以id分组,把name字段的值打印在一行,分号分隔

 

  1. MySQL> select id,group_concat(name separator ';') from aa group by id;  
  2. +------+----------------------------------+  
  3. | id| group_concat(name separator ';') |  
  4. +------+----------------------------------+  
  5. |1 | 10;20;20 |  
  6. |2 | 20|  
  7. |3 | 200;500 |  
  8. +------+----------------------------------+  
  9. 3 rows in set (0.00 sec) 

 

以id分组,把去冗余的name字段的值打印在一行,以上的相关内容就是对MySQL字符串连接函数的具体操作方案的介绍,望你能有所收获。

【编辑推荐】

  1. MySQL配置SSL的实际操作流程
  2. 安装MySQL在linux as3之下
  3. MySQL连接字符串中的几个重要步骤
  4. MySQL连接字符串的经验总结
  5. Hibernate+MySQL 中文问题的解决
责任编辑:佚名 来源: 互联网
相关推荐

2010-05-26 15:36:23

MySQL字符串

2010-10-09 11:54:46

MySQL字符串

2010-10-12 11:13:51

2010-11-26 10:14:40

MySQL repla

2023-01-09 09:52:06

Bash字符串

2010-10-11 15:36:50

MySQL字符串连接

2010-11-26 11:34:32

MySQL截取字符串函

2009-02-24 15:39:27

字符串比较函数函数

2010-10-11 15:57:35

MySQL清除字符串

2023-03-06 23:05:32

MySQL字符串函数

2010-11-26 09:20:32

MySQL字符串连接函

2010-06-13 18:06:06

2010-11-26 09:46:26

MySQL字符串相加

2009-02-24 14:27:55

2010-05-25 15:51:25

MySQL连接字符串

2010-05-19 14:39:12

MySQL连接字符串

2009-11-12 11:09:56

ADO.NET连接字符

2014-01-02 16:14:10

PostgreSQL字符串

2010-11-26 11:20:31

MySQL字符串处理函

2010-11-26 13:47:51

MySQL随机字符串
点赞
收藏

51CTO技术栈公众号