"Group" 数据类型,group_concat 没有 "group"

"Group" Datatype, group_concat without a "group"

对于 group_concatMySQL 手册说:

This function returns a string result with the concatenated non-NULL values from a group.

group 在这种情况下似乎是某种数据类型。是否可以手动创建此数据类型?

例如,我在 table 中有 onetwo,我想检索这两个分隔为 CSV 的值:

select group_concat(column) from table group by column

这连接

'one', 'two'

正如预期的那样,但是:

select group_concat('one', 'two');

returns:

'onetwo'

就好像它只是 concat.

组不是数据类型。在此上下文中,它指的是一组行,由您在 GROUP BY 子句中命名的列中具有相同值的行定义。

GROUP_CONCAT() 具有多个参数,其行为类似于 CONCAT(),如上面评论中所述。也就是说,多个参数被连接成一个字符串。

您似乎想用逗号分隔符连接多个参数,而不是从一组行中获取值。为此,您可以使用 MySQL 的字符串函数 CONCAT_WS():

select concat_ws(',', 'one', 'two') as my_list;

+---------+
| my_list |
+---------+
| one,two |
+---------+