sqlite select语句中的Python函数,这可能吗?

时间:2019-04-14 23:30:13

标签: python-3.x sqlite

我试图查看sqlite3是否可以与select语句中的自定义Python函数结合使用。

我正在尝试找出类似的可能性。

select my_custom_python_function(b.name), b.id, b.country from my_table b

my_custom_python_function是我要创建的自定义python函数。这类似于任何现有的sqlite3函数。例如isull,printf

我找不到任何文档来执行此操作。任何输入将不胜感激。

我正在使用sqlite 3.8.3和python 3.6,如果当前版本无法实现,我会根据需要进行升级。

1 个答案:

答案 0 :(得分:0)

您可以从sqlite查询中调用python函数。 只需使用create_function(“ sql_name”,no_of_arguments,python_function)

示例:

import sqlite3

def returnTopRank(students_rank, threshold):
    return students_rank < threshold

db = sqlite3.connect("my.db")
db.create_function("sql_returnTopRank", 2, returnTopRank)
query = "SELECT rank FROM students WHERE sql_returnTopRank(students.rank, 10)"
cur = db.cursor()
cur.execute(query)

在上面的示例中,“ create_function”将python函数与sql数据库链接,可以在查询中的任何位置调用该函数。

您可以修改上面的示例以在您的示例中使用。

我希望这会有所帮助。