我可以用
Arel::Nodes::NamedFunction.new('GROUP_CONCAT', [an_arel_table[:a_column]])
产生
GROUP_CONCAT(a_column)
在我的 SELECT
声明。但我该如何添加 DISTINCT
选择?
Arel::Nodes::NamedFunction.new('GROUP_CONCAT', ['DISTINCT', an_arel_table[:a_column]])
产量
GROUP_CONCAT(DISTINCT, a_column)
这是一个语法错误。
1条答案
按热度按时间j5fpnvbx1#
这是一个有点黑客,但下面的作品。
Arel::Nodes::InfixOperation
提供生成序列的机制X DISTINCT Y
. 通过设置X
空白(Arel::Nodes::SqlLiteral.new('')
),我们的结局是DISTINCT Y
.更高版本的arel(beyond rails 4.2)支持
UnaryOperation
可以表达DISTINCT
修改器组件Arel::Nodes::UnaryOperation.new('DISTINCT', an_arel_table[:a_column])
. ((未经测试)