MYSQL 拼接查询结果
拼接有concat,concat_ws,group_concat
这三个函数具体功能详见百度,这里不做赘述了。仅记录开发经验。
concat(str,str1,str2,…);用于拼接查找的字符。例如下:
SELECT
buildname,
unit,
room
FROM
room
WHERE
...省略...
结果如下。但这个并不是我想要的结果。我希望查询出来就是拼接好的。(分隔符用"-")
此时即可使用concat函数。
SELECT
CONCAT(
buildname,
'-',
unit,
'-',
room
) AS Info
FROM
room
WHERE
...省略...
此时就拼接好了。
当然也可以使用concat_ws。(但是第一个参数不能为null。第一个参数是分隔符)
SELECT
CONCAT_WS(
‘-’,
buildname,
unit,
room
) AS Info
FROM
room
WHERE
...省略...
group_concat比较重要了。
SELECT
c.name,
c.room_id
FROM
c as c
WHERE
...省略...
这不是我希望的结果,我希望 同一个人分组。光加入group by 又会只有一条记录。
此时就可以使用group_concat了。
SELECT
c.name,
group_concat(cr.room_id ORDER BY cr.px ASC SEPARATOR ';' ) as room_id
FROM
c as c
WHERE
...省略...
GROUP BY c.id
--这句group by很重要。
group_concat的第一个参数是你需要拼接的字段,然后order by 排序,然后是分隔符的定义。