如何在光滑+ postgresql上获得分页选择

ped*_*o91 8 postgresql pagination scala slick

在postgresql数据库中,使用光滑的3,分页的最佳方法是什么?

  • 获取所有行并使用scala进行分页(似乎效率不高)?
  • 带限制和偏移的静态查询?
  • 还有其他方法吗?

Paw*_*nko 13

您可以在对象上使用takedrop方法TableQuery.它们将被转换为limitoffset结果的SQL查询:

val users: TableQuery[UsersTable] = UsersTable.query

val firstPartOfUsers  = users.drop(0).take(25).result
val secondPartOfUsers = users.drop(25).take(25).result
Run Code Online (Sandbox Code Playgroud)

这两个操作将转换为以下SQL查询:

select "name", "email", "id" from "users" limit 25 offset 0
select "name", "email", "id" from "users" limit 25 offset 25
Run Code Online (Sandbox Code Playgroud)