1.方法 CONCAT(str1,str2,...) 返回结果为连接参数产生的字符串。如有任何一个参数为NULL ,则返回值为 NULL。
注意: 此方法在转换成字符串的时候,如果有一个参数为NULL ,则返回结果为NULL.
2.方法: CONCAT_WS(), 是 CONCAT() 的特殊形式,第一个参数 separator 为分隔符,当分隔符为NULL 的时候,CONCAT_WS() 的结果为NULL. 当str... 参数中有NULL字符串的时候,NULL 会被忽略。
3.方法 GROUP_CONCAT( [DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符'] );将结果打印在一行,默认以“,”作为分隔符。 DISTINCT 去除重复的数据。
eg: 用户角色关系表中,查询用户的多个角色拼接成一个字符串 tb_sys_user 用户表,tb_user_role 用户角关系表。 tb_sys_role 角色表
SELECT
USER_ID,
LOGIN_NAME,
USER_NAME ,
GROUP_CONCAT(DISTINCT(r.ROLE_NAME))
FROM tb_sys_user AS u
LEFT JOIN tb_user_role AS t
ON u.USER_ID=t.USER_ID
LEFT JOIN tb_sys_role AS r
ON t.ROLE_ID = r.ROLE_ID
WHERE
GROUP BY USER_ID