2017-08-16 19 views
1

私はV3 『で始まっている『テーブル名 『テーブル』 ID」列から最高値を選択しようとしている』』で終わる 『T』。SQLAlchemyの選択とmax

これは、次のSQL文でfindeに動作します:

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) 

答えて

1

まず、あなたはこのように照会する必要がある列の最大計算する:フィルタリングにブール演算を使用するには

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')))) 
+0

ありがとうございました。 :) – Jonas

関連する問題