从 MySQL 的 GROUP_CONCAT 迁移到 PostgreSQL 的 STRING_AGG
MySQL 的 GROUP_CONCAT
函数有效地将多行中的值组合成单个字符串。 PostgreSQL 提供了 STRING_AGG
函数来实现相同的结果。
解决方案:
要在 PostgreSQL 数据库中复制 GROUP_CONCAT
的功能,请在查询中使用 STRING_AGG
函数。 例如,如果您想为每个唯一的 some_column
连接名为 id
的列中的值,查询将如下所示:
<code class="language-sql">SELECT id, STRING_AGG(some_column, ',') FROM the_table GROUP BY id;</code>
详细说明:
STRING_AGG(some_column, ',')
:查询的这部分连接 some_column
列中找到的值。 ,
指定逗号作为连接值之间的分隔符。 您可以根据需要将此分隔符更改为任何其他字符或字符串。GROUP BY id
:这将根据 id
列对行进行分组。 然后,STRING_AGG
函数分别对每个组进行操作,仅连接同一 id
组内的值。预期输出:
查询将生成类似于 MySQL 的 GROUP_CONCAT
:
<code>id | string_agg ------+----------------- TM67 | 4,9,72 TM99 | 2,3</code>
这演示了使用 GROUP_CONCAT
将 MySQL STRING_AGG
函数的功能直接有效地转换为 PostgreSQL 上下文。
以上是如何用PostgreSQL的STRING_AGG替换MySQL的GROUP_CONCAT?的详细内容。更多信息请关注PHP中文网其他相关文章!