如何在 slick + postgresql 上分页 select
how to get paginated select on slick + postgresql
在 postgresql 数据库中,使用 slick 3,最好的分页方式是什么?
- 获取所有行并使用 scala 进行分页(似乎效率不高)?
- 带限制和偏移量的静态查询?
- 还有其他方法吗?
您可以在 TableQuery
对象上使用 take
和 drop
方法。在生成的 SQL 查询中,它们将被翻译为 limit
和 offset
:
val users: TableQuery[UsersTable] = UsersTable.query
val firstPartOfUsers = users.drop(0).take(25).result
val secondPartOfUsers = users.drop(25).take(25).result
这两个操作将转换为以下 SQL 个查询:
select "name", "email", "id" from "users" limit 25 offset 0
select "name", "email", "id" from "users" limit 25 offset 25
在 postgresql 数据库中,使用 slick 3,最好的分页方式是什么?
- 获取所有行并使用 scala 进行分页(似乎效率不高)?
- 带限制和偏移量的静态查询?
- 还有其他方法吗?
您可以在 TableQuery
对象上使用 take
和 drop
方法。在生成的 SQL 查询中,它们将被翻译为 limit
和 offset
:
val users: TableQuery[UsersTable] = UsersTable.query
val firstPartOfUsers = users.drop(0).take(25).result
val secondPartOfUsers = users.drop(25).take(25).result
这两个操作将转换为以下 SQL 个查询:
select "name", "email", "id" from "users" limit 25 offset 0
select "name", "email", "id" from "users" limit 25 offset 25