mysql字符串拼接

CONCAT()
CONCAT_WS()
GROUP_CONCAT()

 

update 表名
   set column= CONCAT('DBxx', device_code)
 where column like 'DBxx-xxx%' ;

 

为了方便下面举例,这里放个student表供下面使用

 

 

 


一、CONCAT() :
最常用的字符串拼接方法,但遇到拼接中的字符串出现null的情况会返回null
语法:CONCAT(string1,string2)
DEMO1
mysql > SELECT CONCAT(name,sex) FROM student
+----------------------+
CONCAT(name,sex)
+----------------------+
张三男
赵四男
王五女
null


二、CONCAT_WS():concat with separator
比CONCAT的优点
多了个分隔符功能
如果某个字符串为null,会忽略null,并返回其他字符串的值
语法:CONCAT_WS(separator,str1,str2,…)
代表 concat with separator ,是concat()的特殊形式。第一个参数是其它参数的分隔符。分隔符的位置放在要连接的两个字符串之间。分隔符可以是一个字符串,也可以是其它参数
DEMO2
mysql > SELECT CONCAT_WS('--',name,sex) FROM student
+-------------------------------+
CONCAT_WS('--',s_name,s_sex)
+-------------------------------+
张三--男
赵四--男
王五--男
赵六

三、GROUP_CONCAT()
连接字段,多个值显示为一行
语法 :group_concat( [DISTINCT] 连接的字段 [Order BY 排序字段 ASC/DESC] [Separator ‘分隔符’] )
连接的可以是多个字段,也可以对连接字段进行排序

DEMO3:连接一个字段,没有重复数据场景
mysql > SELECT GROUP_CONCAT(id) FROM student
+--------------------------------------------+
GROUP_CONCAT(id)
+--------------------------------------------+
1,2,3,4

DEMO4:连接一个字段,有重复数据场景,但没有进行去重处理
mysql > SELECT GROUP_CONCAT(sex) FROM student
+--------------------------------------------+
GROUP_CONCAT(sex)
+--------------------------------------------+
男,男,女

DEMO5:连接一个字段,有重复数据场景,进行去重处理
mysql >SELECT GROUP_CONCAT(distinct(sex)) FROM student
+--------------------------------------------+
GROUP_CONCAT(distinct(sex))
+--------------------------------------------+
女,男

DEMO6:连接多个字段,并以其中一个字段排序
mysql > SELECT GROUP_CONCAT(id,name order by id desc) FROM student
+--------------------------------------------+
GROUP_CONCAT(id,name order by id desc)
+--------------------------------------------+
4赵六,3王五,2李四,1张三
————————————————



posted @ 2020-05-15 14:15  沧海一滴  阅读(1684)  评论(0编辑  收藏  举报