mysql - MySQL 中 PostgreSQL 的 array_agg() 和 array_to_string

标签 mysql function postgresql

我想知道 MySQL 中是否有 array_agg()array_to_stringPostgreSQL 对应物(或任何东西至少接近这个功能)我的研究试图找到与这两个类似的东西,但我没有任何运气。对于非 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/

相关文章:

php - 插入俄语字符 mysql

c - 有没有更有效的方法在不使用数组的情况下使用指针对整数进行排序?

javascript - 如何缓存文本区域?

function - 如何实现功能?

postgresql - SQL查询列不存在错误

sql - 如何根据表的存在用sql复制表模式?

PHP 查询失败,显示错误?

php - 加入表并查找并获取指定的行 laravel

ruby-on-rails - 重新创建我的 database.yml 文件

mysql - 如何在不调用另一个查询的情况下获取此查询的总数?