如何使用 SQLAlchemy 从表中选择一个或多个随机行?
最佳答案
这是一个非常特定于数据库的问题。
我知道 PostgreSQL、SQLite、MySQL 和 Oracle 都有随机函数排序的能力,所以你可以在 SQLAlchemy 中使用它:
from sqlalchemy.sql.expression import func, select
select.order_by(func.random()) # for PostgreSQL, SQLite
select.order_by(func.rand()) # for MySQL
select.order_by('dbms_random.value') # For Oracle
接下来,您需要通过您需要的记录数来限制查询(例如使用 .limit()
)。
请记住,至少在 PostgreSQL 中,选择随机记录具有严重的性能问题; here是一篇关于它的好文章。
关于python - 通过 SQLAlchemy 获取随机行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60805/