python - sqlite 数据库中的洗牌值给出无
问题描述
sqlalchemy
我尝试使用但使用 SQL 查询来洗牌 sqlite 数据库中列的值。
我有一个mtr_cdr
带有列的表idx
。如果我有
conn = engine.connect()
conn.execute('SELECT idx FROM mtr_cdr').fetchall()[:3]
我得到了正确的值:[(3,),(3,),(3,)]
在这种情况下,它们是列中的顶部值(此时,idx
列是有序的,并且有多个行对应于相同的idx
)。
但是,如果我尝试:
conn.execute('SELECT idx FROM mtr_cdr ORDER BY RANDOM()').fetchall()[:3]
我明白了[(None,),(None,),(None,)
。
如果有帮助,我正在使用 sqlalchemy 1.2.9 版。
哪种方法可以给我正确的结果,但可以扩展到大型数据库?在完整的数据库中,我预计大约有 1 亿多行,而且我听说ORDER BY RANDOM()
(如果我能让它工作的话)会很慢......
解决方案
推荐阅读
- laravel - Laravel octane - 无限加载服务器错误
- angularjs - 如何使用递归函数在使用 angulat ui 树的树数组中选择父级?
- php - 基于一个数组的值和另一个数组的键组合多维数组
- java - 如何从片段内的 ListView 打开 URL?
- python-3.x - 如何进入 docker 容器并使用 Paramiko 模块在 Python 中重新启动服务?
- nginx - 是否可以在 nginx 上设置“完整请求”超时?
- python - 在编辑时删除并重新添加数据库子项
- python - 我如何能够在文件中搜索输入并在函数中打印它们
- sql - Postgresql 使用 Limit 和 Order by 没有 select 和 where 大小写
- javascript - ajax 请求的原子性