将sqlalchemy.sql.functions.char_length作为筛选条件使用

4 投票
1 回答
1682 浏览
提问于 2025-04-16 20:57

我正在使用Elixir和sqla 0.6,想要查询我的模型:

class Document(Entity): 
    using_options(shortnames=True, order_by='doc_date')
    doc_number = Field(Unicode(20),index=True)

...查找长度为特定数字的文档。

我在想类似这样的方式:

Document.query.filter(Document.doc_number.char_lenght()==5).all()

...但显然,虽然在sqlalchemy.sql.functions中有char_length这个函数,但在这里却无法使用。我该如何在声明式用法中让它工作,而不直接写查询呢?

1 个回答

6

好的,找到一个答案:

from sqlalchemy import func
Document.query.filter(func.char_length(Document.doc_number)==5).all()

撰写回答