如何在 yii2 ActiveDataProvider 中使用 postgres 函数 string_agg()?

Posted

技术标签:

【中文标题】如何在 yii2 ActiveDataProvider 中使用 postgres 函数 string_agg()?【英文标题】:How to use postgres function string_agg() in yii2 ActiveDataProvider? 【发布时间】:2016-08-11 10:55:27 【问题描述】:

我已经在模型中尝试了以下内容。

$query = Students::find()->select("string_agg(distinct name,'|') "); 

当我这样使用时,我得到了错误:

SQLSTATE[42601]:语法错误:7 错误:“FROM”处或附近的语法错误 LINE 1: SELECT string_agg(distinct name, "'|')" FROM "students..^The 正在执行的 SQL 是:SELECT string_agg(distinct name, "'|')" FROM “学生” LIMIT 20

我也尝试了同样的转义字符,那个时候它也显示了同样的错误。我如何在 yii2 中使用它?

【问题讨论】:

【参考方案1】:

试试这样:

Students::find()->select(["string_agg(distinct name,'|')"])->column()

【讨论】:

如何像这样使用多列 您已经在聚合名称列,您希望在分组查询结果中看到哪些其他列,这似乎是不可能的。 你会通过这个查询得到所有不同的名字,所以我还是回答了你的问题

以上是关于如何在 yii2 ActiveDataProvider 中使用 postgres 函数 string_agg()?的主要内容,如果未能解决你的问题,请参考以下文章

如何在yii2中使用事件?

yii2如何获取根目录

如何使用yii2的缓存依赖特性

如何在 Yii2 中将 textInput 设置为只读?

如何在 GridView::widget、Yii2 的搜索框中使用简单的下拉列表?

Yii2 - 在模型中提交时如何从小部件中获取数据?