mysql之concat、concat_ws、 group_concat

concat、concat_ws、group_concat都可以用来连接字符串。

concat和concat_ws用来连接同一行中不同列的数据,group_concat用来连接同一列的数据

格式如下:

  • concat(str1, str2, ...)

  例如:select CONCAT('a','b','c','d');   结果为 abcd

  • concat_ws(separator, str1, str2, ...)

  例如:select CONCAT_WS('-','a','b','c','d')  结果为 a-b-c-d

  • group_concat([distinct] 列名  [order by 列名 desc/asc] [separator 分隔符])

 

 group_concat一般和group by 子句配合使用,将group by 产生的同一分组中的值连接起来,返回一个字符串结果。

  • select name, group_concat(id) from tb1 group by name   -- 将相同name的所有id连接起来
  • select name, group_concat(id order by id desc separator  '-' ) from tb1 group by name   -- 将相同name的所有id连接起来,并降序排序,连接符为-
  • select name, group_concat(concat_ws('-', id, score)) from tb1 group by name  -- 将相同name的所有id和score连接起来
posted @ 2018-11-19 23:15  小虫虫大虫虫  阅读(270)  评论(0编辑  收藏  举报