lea*_*lea 5 python random sqlalchemy
我想在使用 order_by 混洗 sqlalchmy 查询结果时设置随机种子,以始终获得相同的查询结果:
my_query.order_by(func.random())
Run Code Online (Sandbox Code Playgroud)
我在文档中找不到如何执行此操作。我尝试过
my_query.order_by(func.random(random_seed=1))
my_query.order_by(func.random(random_state=1))
Run Code Online (Sandbox Code Playgroud)
但两者都不起作用。预先感谢您的任何想法/提示!
一切顺利,莉亚
SQLAlchemyfunc对象仅呈现 SQL 中的函数。
>>> from sqlalchemy import func
>>> print(func.random())
random()
Run Code Online (Sandbox Code Playgroud)
在某些情况下(包括这种情况),它会在不同的数据库后端(例如 MySQL)上呈现不同的底层函数:
>>> from sqlalchemy.dialects import mysql
>>> print(func.random().compile(dialect=mysql.dialect()))
rand()
Run Code Online (Sandbox Code Playgroud)
这意味着您使用的数据库会生成随机数,因此您必须调用特定于数据库的函数来设置种子,例如在您使用的 PostgreSQL 上setseed,其调用方式与其他 SQL 函数相同:
>>> func.setseed(0.123...)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1482 次 |
| 最近记录: |