使用 slick 3.0 和 postgresql 获取 6 条随机记录

get 6 random records with slick 3.0 and postgresql

我需要一些帮助来编写正确的 slick (3.0) 语法以从 table 中获取 6 个随机行。

我要转换:

select * from [table]
order by random()
limit 6

进入流畅的代码。

我找到了这个页面 http://slick.typesafe.com/doc/3.0.0/sql-to-slick.html#index-11。但是作为 scala 的新手和 slick 我不能自己做。

尝试

val rand = SimpleFunction.nullary[Double]("random")
db.run(Tables.sortBy(x=>rand).take(6).result)

这生成下一个sql:

select x2."field1", x2."field2" from 
(select x3."field1" as "field1", x3."field1" as "field2" from "Table" x3 order by random() limit 6) x2

以及为什么slick会生成子查询,你可以在这里找到