Dan*_*ler 6 python sql postgresql sqlalchemy blaze
特别是我想称之为Postgres levenshtein
功能.我想写一个大火查询来返回类似于'相似'这个词的单词,即相当于:
select word from wordtable where levenshtein(word, 'similar') < 3;
Run Code Online (Sandbox Code Playgroud)
在Blaze中,这应该看起来像
db.wordtable.word[levenshtein(db.wordtable.word, 'similar') < 3]
Run Code Online (Sandbox Code Playgroud)
但是levenshtein
我没有在python端导入的任何模块中定义.我在哪里/如何获得levenshtein
在Python端使用Blaze表达式的定义?
我找到了sqlalchemy.sql.func
提供SQL函数的Python句柄的包,用于SqlAlchemy,但这些在Blaze表达式中不起作用.是否有一个等效的Blaze包,或者我如何sqlalchemy.sql.func.levenshtein
在Blaze表达式中使用?
Blaze 只是一个前端;并重组,然后将查询提供给 SQL 后端,后者从数据库收集数据。
\n\n来自多库:
\n\n\n\n\nSQL 数据库可以执行哪些操作?大多数表格操作,但不是全部。\n SQLAlchemy 转换具有高优先级。失败包括切片和点积等数组操作在 SQL 中没有意义。\n 此外,SQLAlchemy 尚未很好地支持一些操作(例如日期时间访问)。最后,一些数据库(例如 SQLite)对 sin 等常见数学函数的支持有限。
\n
Blaze 的目的是忘记后端,并为所有后端提供相似/相同的语法。因此它只支持常见的操作。在我看来,不可能指定 sqlalchemy 或 postgresql 函数供 blaze 使用,因此我认为现在这是不可能的。
\n\n...但是blaze 有版本 0.10,它是去年做出积极贡献的测试版。我相信,这将在一段时间内实施。您始终可以跟踪发行说明中的更改。
\n\n添加:\n有关 SQL 中的 UDF(用户定义函数)以及在 blaze 中使用它们的进一步说明,请比较beldaz 提供的链接(与此问题非常相似)。
\n