详解MySQL中的字符串拼接函数

虽然SQL server和My sql的语句基本都一致,但是仍然存在一些小区别。就如字符串的连接来说,SQL server中的字符串连接是使用“+”来连接,不带引号sql server是做加法运算。而my sql中无论是带引号和不带引号,它都将其先转成数字型,然后在做运算。

CONCAT_WS(separator,str1,str2,…)

说明 : string1,string2代表字符串,concat_ws 代表 concat with separator,第一个参数是其它参数的分隔符。分隔符的位置放在要连接的两个字符串之间。分隔符可以是一个字符串,也可以是其它参数。如果分隔符为 NULL,则结果为 NULL。函数会忽略任何分隔符参数后的 NULL 值。

CONCAT函数

功能:连接一个或多个字符串,然后返回连接后的字符串。

函数形式:CONCAT(str1,str2,…)

示例1:单个字符串连接

mysql> select concat(‘Hello’);

+—————–+

| concat(‘Hello’) |

+—————–+

| Hello           |

+—————–+

1 row in set (0.00 sec)

示例2:连接多个字符串

mysql> select concat(‘Hello’,’ ‘,’world’);

+—————————–+

| concat(‘Hello’,’ ‘,’world’) |

+—————————–+

| Hello world                 |

+—————————–+

1 row in set (0.00 sec)

示例3:任意连接的字符串为NULL,则连接后返回的结果也为NULL

mysql> select concat(‘Hello’,’ ‘,’world’,null);

+———————————-+

| concat(‘Hello’,’ ‘,’world’,null) |

+———————————-+

| NULL                             |

+———————————-+

1 row in set (0.00 sec)

CONCAT_WS函数

功能:通过指定的“连接符”连接一个或多个字符串,然后返回连接后的字符串。

函数形式:CONCAT_WS(separator,str1,str2,…)

示例1:通过下划线连接多个字符串

mysql> select concat_ws(‘_’,’功能编号’,’需求编号’,’用例编号’);

+————————————————————-+

| concat_ws(‘_’,’功能编号’,’需求编号’,’用例编号’)             |

+————————————————————-+

| 功能编号_需求编号_用例编号                                  |

+————————————————————-+

1 row in set (0.00 sec)

示例2:当连接的字符串中存在NULL时,则连接后返回的结果不为NULL

mysql> select concat_ws(‘_’,’功能编号’,’需求编号’,’用例编号’,null);

+——————————————————————+

| concat_ws(‘_’,’功能编号’,’需求编号’,’用例编号’,null)

+——————————————————————+

| 功能编号_需求编号_用例编号

+——————————————————————+

1 row in set (0.00 sec)

示例3:当分隔符为null时,则返回的结果也为NULL

mysql> select concat_ws(null,’功能编号’,’需求编号’,’用例编号’);

+————————————————————–+

| concat_ws(null,’功能编号’,’需求编号’,’用例编号’)

+————————————————————–+

| NULL

+————————————————————–+

1 row in set (0.00 sec)

GROUP_CONCAT函数

功能:将属于同一分组的值进行连接,然后按分组返回结果字符串。

函数形式:GROUP_CONCAT(expr)

示例数据,假设Course表存在以下数据

mysql> select * from Course;

+——-+————–+

| stuId | courseName   |

+——-+————–+

|  1001 | 大学语文     |

|  1001 | 原理力学     |

|  1001 | 固体物理     |

|  1002 | 大学英语     |

|  1002 | 专八英语     |

+——-+————–+

5 rows in set (0.00 sec)

示例1:获取每个学生的所有课程,并在一行显示

mysql> SELECT stuId, GROUP_CONCAT(courseName) AS courses FROM Course GROUP BY stuId;

+——-+—————————————-+

| stuId | courses

+——-+—————————————-+

|  1001 | 大学语文,原理力学,固体物理

|  1002 | 大学英语,专八英语

+——-+—————————————-+

2 rows in set (0.02 sec)

 

示例2:GROUP_CONCAT的默认分隔符为“,”,也可通过SEPARATOR定义分隔符

mysql> SELECT stuId, GROUP_CONCAT(courseName SEPARATOR ‘&&’) AS courses FROM Course GROUP BY stuId;

+——-+——————————————+

| stuId | courses

+——-+——————————————+

|  1001 | 大学语文&&原理力学&&固体物理

|  1002 | 大学英语&&专八英语

+——-+——————————————+

2 rows in set (0.00 sec)

示例3:对同一分组内的值进行排序后在连接

mysql> SELECT stuId, GROUP_CONCAT(courseName ORDER BY courseName desc) AS courses FROM Course GROUP BY stuId;

+——-+—————————————-+

| stuId | courses

+——-+—————————————-+

|  1001 | 大学语文,固体物理,原理力学

|  1002 | 大学英语,专八英语

+——-+—————————————-+

2 rows in set (0.00 sec)


GDCA是一家提供信息安全证书的运营企业,从事信息安全证书数十载,在信息安全方面拥有雄厚的实力。GDCA已通过WEBTRUST国际认证,具备了国际化的电子认证服务能力。其中,GDCA的 产品之一SSL证书是一种服务器端的数字证书,它能确保用户在使用SSL协议进行数据交换时验证和确保数据安全。GDCA SSL证书使用的加密长度是128/256位。据目前IT技术,40位强度的证书暴力破解耗费4小时,而对于128位证书破解需要一万亿年以上。目前,GDCA SSL证书是国内领先的安全证书。日后,GDCA将会坚持不断深入研发,为各大网络商业平台提供更安全的信息安全证书,为网络安全虚拟世界贡献一份微弱的力量。

上一篇:

下一篇:

相关新闻

联系我们

95105813

销售1: 点击这里给我发消息

销售2: 点击这里给我发消息

销售:sslsales@gdca.com.cn

工作时间:周一至周五,9:00-18:00,节假日休息

QR code