我尝试从表'tablename'中的'id'列中选择最高值,该列以'v3'开头,结尾为't'。< / p>
这适用于以下SQL语句:
SELECT max(_id_)
FROM _db.tablename_
WHERE _id_ LIKE 'v3%'
AND _id_ NOT LIKE '%T'
但似乎我的sqlAlchemy代码片段中有一些错误,无法找到错误。
query = session.query(_CLASSNAME_._ID_).filter(
func.max(_CLASSNAME_._ID_.like('v4%'), not_(_CLASSNAME_._ID_.like('%T'))))
for _res in query.all():
print(_res)
答案 0 :(得分:1)
首先,要计算列的 max ,您需要像这样查询:
session.query(func.max(Table.column))
要在过滤中使用布尔运算,您需要从sqlalchemy导入等效函数:
from sqlalchemy import and_
from sqlalchemy import not_
您的查询可能是这样的:
query = (session.query(func.max(_CLASSNAME_._ID_))
.filter(and_(_CLASSNAME_._ID_.like('v4%'),
not_(_CLASSNAME_._ID_.like('%T'))))