2

我想知道是否有 in 的对应物(array_agg()或至少与此功能接近array_to_string的任何东西)我在试图找到与这两个类似的东西的研究中没有任何运气。对于非 PostgreSQL 用户,这是它的工作原理。 通常,执行:PostgreSQLMySQL

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,正如函数名所说,它将数组转换为单个字符串。
转换 array_agg(my_column) 将返回以下内容:

-------------------------
|                       |
|-----------------------|
|DATA1,DATA2,DATA3,DATA4|
-------------------------

取决于你的分隔符。就我而言,它是逗号。

* ** * ** * ** * ** * ** * ***编辑(解决方案)** * ** * ** * ** * ** * ** * *

解决方案(由 IgorRomanchenko 编写):

SELECT GROUP_CONCAT(my_column SEPARATOR ',');
4

1 回答 1

7

MySQL 没有内置数组类型,但您可以使用字符串聚合(如GROUP_CONCAT)将多个值聚合为单个字符串。

于 2013-08-13T08:11:26.493 回答