mysql的查询结果行字段拼接,可以用下面两个函数实现:
1. concat函数
mysql> select concat('1','2','3') from test ;+---------------------+| concat('1','2','3') |+---------------------+| 123 |+---------------------+
如果连接串中存在null,则返回结果为null:mysql> select concat('1','2',null,'3') from test ;+--------------------------+| concat('1','2',null,'3') |+--------------------------+| null |+--------------------------+
2. concat_ws函数concat(separator,str1,str2,...) 代表 concat with separator ,是concat()的特殊形式。第一个参数是其它参数的分隔符。分隔符的位置放在要连接的两个字符串之间。分隔符可以是一个字符串,也可以是其它参数。
mysql> select concat_ws(':','1','2','3') from test ;+----------------------------+| concat_ws(':','1','2','3') |+----------------------------+| 1:2:3 |+----------------------------+
分隔符为null,则返回结果为null:mysql> select concat_ws(null,'1','2','3') from test; +-----------------------------+| concat_ws(null,'1','2','3') |+-----------------------------+| null | +-----------------------------+
如果参数中存在null,则会被忽略:mysql> select concat_ws(':','1','2',null,null,null,'3') from test ;+-------------------------------------------+| concat_ws(':','1','2',null,null,null,'3') |+-------------------------------------------+| 1:2:3 |+-------------------------------------------+
可以对null进行判断,并用其它值进行替mysql> select concat_ws(':','1','2',ifnull(null,'0'),'3') from bank limit 1; +---------------------------------------------+| concat_ws(':','1','2',ifnull(null,'0'),'3') |+---------------------------------------------+| 1:2:0:3 | +---------------------------------------------+