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