如何sqlalchemy按字符串长度过滤?
sqlalchemy
此代码段:
sess.query(db.ArticlesTable).filter(or_( and_(db.ArticlesTable.shorttext.length > 0), ...
给了我以下错误:
File "./aggregate_news.py", line 69, in is_acceptable db.ArticlesTable.shorttext.length > 0), File ".../sqlalchemy/orm/attributes.py", line 211, in __getattr__ key) AttributeError: Neither 'InstrumentedAttribute' object nor 'Comparator' object associated with ArticlesTable.shorttext has an attribute 'length'
在哪里ArticlesTable:
ArticlesTable
class ArticlesTable(Base): __tablename__ = TABLE_ARTICLES id = Column(Integer, primary_key=True) shorttext = Column(String) ...
您需要使用funcSQL函数生成器来创建LENGTH()函数:
func
LENGTH()
from sqlalchemy.sql.expression import func sess.query(db.ArticlesTable).filter(or_( and_(func.length(db.ArticlesTable.shorttext) > 0),