python - 通过 SQLAlchemy 获取随机行

标签 python sql database random sqlalchemy

如何使用 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/

相关文章:

MySQL 查询时刻表信息

database - 使用 Hibernate 进行数据迁移

python - 将Python输出整齐地写入txt文件中?

python - R 的矩阵函数的 numpy 等价物是什么?

Python:对多个字典使用相同的键TypeError: 'str'对象不支持项目分配

python - 值错误 : Wrong number of items passed - Meaning and suggestions?

mysql - INSERT INTO WITH SELECT 导致插入多行而不是仅插入一行

MySql多类别排名系统

php - 如何保存修改以便以后应用?

java - 在activiti源代码中更新postgres数据库属性