sqlite查询中的对数函数?

jak*_*451 6 python sqlite

我真的需要update使用对数函数对超过40万行执行。不幸的是,sql对数函数似乎在sqlite中不存在。有什么方法可以导出对数函数或导入该LOG函数?

我知道如何执行此操作的唯一其他方法是,我相信通过python来订购O(n ^ 2)。这种方法将花费太长时间(我尝试过,在速度较慢的计算机上花了大约5%的时间才花费了1.5个小时)。

编辑:

我还找出了花这么长时间的原因。数据库中的主键未标记为主键。因此,我使用的代码如下:

for row in database:
    ...calculations for the row...
    ...sql update for the specific row which follows:...
    for search_row in database:
        if search_row[id] = row[id]:
            ...update values here...
Run Code Online (Sandbox Code Playgroud)

效率极低... O(n ^ 2)

CL.*_*CL. 5

没有内置的对数函数;您必须定义自己的功能。

如果您使用的是python,则pysqliteAPSW模块都可以实现。

  • 哇,这成功了。我在 sqlite3 数据库中添加了 `math.log` 作为函数 `log`,并带有两个参数(以完成 log256)。查询只花了几秒钟。现在我之前的实现听起来很愚蠢。 (2认同)