"Group" 数据类型,group_concat 没有 "group"
"Group" Datatype, group_concat without a "group"
对于 group_concat
,MySQL 手册说:
This function returns a string result with the concatenated non-NULL values from a group.
group
在这种情况下似乎是某种数据类型。是否可以手动创建此数据类型?
例如,我在 table 中有 one
和 two
,我想检索这两个分隔为 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 |
+---------+
对于 group_concat
,MySQL 手册说:
This function returns a string result with the concatenated non-NULL values from a group.
group
在这种情况下似乎是某种数据类型。是否可以手动创建此数据类型?
例如,我在 table 中有 one
和 two
,我想检索这两个分隔为 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 |
+---------+