虽然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将会坚持不断深入研发,为各大网络商业平台提供更安全的信息安全证书,为网络安全虚拟世界贡献一份微弱的力量。