我想知道 MySQL
中是否有 array_agg()
和 array_to_string
的 PostgreSQL
对应物(或任何东西至少接近这个功能)我的研究试图找到与这两个类似的东西,但我没有任何运气。对于非 PostgreSQL 用户,以下是它的工作原理。
通常,执行:
SELECT my_column FROM my_table;
将导致:
--------------
| my_column |
|------------|
| DATA1 |
| DATA2 |
| DATA3 |
| DATA4 |
--------------
另一方面,执行语句:
SELECT array_agg(my_column) FROM my_table;
将导致:
包含来自 my_column 的所有数据的单行。
-----------------------------------
| array_agg(my_column) |
|---------------------------------|
|{"DATA1","DATA2","DATA3","DATA4"}|
-----------------------------------
还有array_to_string,正如函数名所说,它将数组转换为单个String。
转换 array_agg(my_column) 将返回以下内容:
-------------------------
| |
|-----------------------|
|DATA1,DATA2,DATA3,DATA4|
-------------------------
取决于您的分隔符。就我而言,它是逗号。
*******************编辑(解决方案)**** ***************
解决方案(由 IgorRomanchenko 撰写):
SELECT GROUP_CONCAT(my_column SEPARATOR ',');
最佳答案
MySQL 在数组类型中没有 bult,但您可以使用字符串聚合(如 GROUP_CONCAT
)将多个值聚合为一个字符串。
关于mysql - MySQL 中 PostgreSQL 的 array_agg() 和 array_to_string,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18184065/