I' 试图从表 'tablename' 中的 'id' 列中选择最大值,该列以 'v3' 开头,以 't' 结尾。
这适用于以下 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)
首先,要计算列的最大值,您需要像这样查询:
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'))))