SQLAlchemy中文本SQL中的UserDefined函数

2024-07-05 14:46:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在阅读有关SQLAlchemy的textual SQL和{a2}的文档,我不清楚如何将两者结合起来。在

例如,假设我有以下代码:

# relevant imports

def f(username):
    if len(username) < 5:
        return True
    else:
        return False

t = text("select * from users where f(username)")
db.session.execute(t)

我知道这个特定的例子可能不需要用户定义函数,但我希望能有一个通用的答案,它适用于任何用户定义函数。在


Tags: 函数代码用户文档a2sqlreturnif
1条回答
网友
1楼 · 发布于 2024-07-05 14:46:10

我想您可能对这些自定义函数的含义有点困惑。它们引用的是SQL数据库中可用的函数,而不是Python中定义的函数。文档给出了NOW或{}的示例;这两个函数通常都由数据库服务器软件提供。在

许多数据库支持“存储过程”;例如,下面是stored procedures in PostgreSQL的文档。它们与您所描述的更为相似:它们是可以在查询过程中求值的函数。不过,在您的特定情况下,编写查询以直接检查字符串长度几乎肯定更容易。对于PostgreSQL或MySQL,该查询将为:

select * from users where char_length(username) < 5

相关问题 更多 >