当前位置: 首页 > 面试题库 >

通过SQLAlchemy获取随机行

家志学
2023-03-14
问题内容

如何使用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中,选择随机记录会带来严重的性能问题。这是一篇很好的文章。



 类似资料:
  • 您可以使用移动设备的 GPS 追踪 A370的户外训练的路线、速度和距离。需要在您手机上安装 Polar Flow 手机应用程式,并与 A370 配对使用配对,并允许使用手机的位置。 当您在训练下开始户外训练课时,带静态圆圈的 GPS 图标会在您的位置固定时显示,您可以开始追踪训练课。 您需要在训练期间保持您的移动设备。

  • 问题内容: 我想在Java中获得1到50之间的随机值。 在的帮助下,我该怎么办;? 如何绑定返回的值? 问题答案: 第一种解决方案是使用类: 另一种解决方案是使用: 要么

  • 问题内容: 对于像这样的简单SQL, 如何将行号添加到它们,以使行号变为1,2和3? 更新: 我以为我可以像上面那样简化我的问题,但是事实却更加复杂。所以这是一个完整的版本-我需要MyTable为每个人提供三个随机选择(来自),选择/行数分别为1、2和3,并且人与选择之间没有逻辑上的联系。 上面的SQL的问题是, 显然,应该添加1、2和3的拾​​取/行数 而且不明显的是,上面的SQL将给每个人相同

  • 问题内容: 我有一个生成事实的简单应用。我想合并一个生成随机事实而不是递减的函数。 我的数组看起来像这样。 问题答案: 使用随机类。该类有一个方法,(doc)和引号: 返回一个伪随机数,它从此随机数生成器的序列中提取,在0(含)和指定值(不含)之间均匀分布的int值。nextInt的一般约定是伪随机生成并返回指定范围内的一个int值。所有n个可能的int值均以(近似)相等的概率产生。 因此,您需要

  • 问题内容: 我正在使用大型词典,由于某种原因,我还需要处理该词典中的少量随机样本。如何获得这个小样本(例如长度为2的样本)? 这是一个玩具模型: 我需要对dy执行一些涉及所有条目的任务。让我们说,为了简化,我需要将所有值加起来: 现在,我还需要对dy的随机样本执行相同的任务;为此,我需要dy键的随机样本。我能想到的简单解决方案是 这样,我就有了字典的两个键的列表,它们是随机的。因此,回到may任务

  • 我想通过在Java中使用push()从列表中获得一个随机。