繁体   English   中英

具有不同列的随机顺序

[英]Random order with distinct column

我正在创建一个涉及多个联接的查询,这会导致一些重复

@users = User.joins(...).where(...).select("users.id")

从该结果中,我想使记录distinct并按RANDOM()顺序排列

我似乎无法用activerecord重新创建它。

使用SQL,它看起来像

SELECT DISTINCT users.*
from ( long complex query)
ORDER BY RANDOM()

与在任何框架中构建复杂查询相比,最简单的操作之一是使用标准SQL构建复杂查询,然后将其包装在视图中:

CREATE VIEW complex_stuff AS
  SELECT DISTINCT users.*
  FROM ( long complex query)
  ORDER BY RANDOM();

视图变成一个简单的实体或类,您可以从中提取所需的列,并可能按某些列进行过滤( SELECT a, b, c FROM complex_stuff WHERE d = ? )。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM