MySQL中如何使用GROUP BY连接字符串?
基本上问题是如何从 this:
foo_id foo_name 1 A 1 B 2 C
到 this:
foo_id foo_name 1 A B 2 C
Basically the question is how to get from this:
foo_id foo_name 1 A 1 B 2 C
to this:
foo_id foo_name 1 A B 2 C
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
https://dev.mysql.com/doc /refman/8.0/en/aggregate-functions.html#function_group-concat
从上面的链接中,
GROUP_CONCAT
:此函数返回一个字符串结果,其中包含来自组的串联非 NULL 值。 如果没有非 NULL 值,则返回 NULL。https://dev.mysql.com/doc/refman/8.0/en/aggregate-functions.html#function_group-concat
From the link above,
GROUP_CONCAT
: This function returns a string result with the concatenated non-NULL values from a group. It returns NULL if there are no non-NULL values.更多详细信息请参见此处。
从上面的链接中,
GROUP_CONCAT
:此函数返回一个字符串结果,其中包含来自组的串联非 NULL 值。 如果没有非 NULL 值,则返回 NULL。More details here.
From the link above,
GROUP_CONCAT
: This function returns a string result with the concatenated non-NULL values from a group. It returns NULL if there are no non-NULL values.:-
在MySQL中,您可以获得表达式组合的串联值
。 要消除重复值,请使用DISTINCT子句。 要对结果中的值进行排序,请使用 ORDER BY 子句。 要按倒序排序,请将DESC(降序)关键字添加到 ORDER BY 子句中作为排序依据的列的名称中。 默认为升序; 这可以使用 ASC 关键字显式指定。 组中值之间的默认分隔符是逗号(“,”)。 要显式指定分隔符,请使用 SEPARATOR 后跟应插入组值之间的字符串文字值。 要完全消除分隔符,请指定SEPARATOR ''。
或者
:-
In MySQL, you can get the concatenated values of expression combinations
. To eliminate duplicate values, use the DISTINCT clause. To sort values in the result, use the ORDER BY clause. To sort in reverse order, add the DESC (descending) keyword to the name of the column you are sorting by in the ORDER BY clause. The default is ascending order; this may be specified explicitly using the ASC keyword. The default separator between values in a group is comma (“,”). To specify a separator explicitly, use SEPARATOR followed by the string literal value that should be inserted between group values. To eliminate the separator altogether, specify SEPARATOR ''.
OR
结果被截断为 group_concat_max_len 系统变量指定的最大长度,该变量的默认值为 1024 个字符,因此我们首先执行:
然后,例如:
The result is truncated to the maximum length that is given by the group_concat_max_len system variable, which has a default value of 1024 characters, so we first do:
and then, for example:
会给你一个逗号分隔的字符串
Will give you a comma-delimited string
很好的答案。
我还遇到了 NULLS 问题,并设法通过在 GROUP_CONCAT 内部包含 COALESCE 来解决它。 示例如下:
希望这对其他人有帮助
Great answers.
I also had a problem with NULLS and managed to solve it by including a COALESCE inside of the GROUP_CONCAT. Example as follows:
Hope this helps someone else