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字符串连接函数的具体操作方案的介绍,望你能有所收获  。