Sot*_*rge 2 random postgresql scala slick
我需要一些帮助来编写正确的光滑 (3.0) 语法以从表中获取 6 个随机行。
我想转换:
select * from [table]
order by random()
limit 6
Run Code Online (Sandbox Code Playgroud)
变成光滑的代码。
我找到了这个页面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)
Run Code Online (Sandbox Code Playgroud)
这会生成下一个 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
Run Code Online (Sandbox Code Playgroud)
而slick为什么会生成子查询,你可以在这里找到/sf/answers/1013834041/